cronjob中的python多线程问题

cronjob中的python多线程问题,python,multithreading,cron,threadpool,Python,Multithreading,Cron,Threadpool,我有一个python程序,它使用。该程序是shell脚本中的一个步骤。当我在命令行上手动执行shell脚本时,整个流程按预期工作。但是,当我将shell脚本作为cronjob执行时,在python多线程步骤完全完成之前,流似乎会进入下一步 在python程序内部,我确实调用AsyncResult.get(timeout)等待所有结果返回,然后再继续。通过批处理(1)运行程序(请参见命令的输出人工批处理)。如果这可以正常工作,但是cron版本不行,那么几乎可以肯定环境变量设置有问题。要验证这一点,

我有一个python程序,它使用。该程序是shell脚本中的一个步骤。当我在命令行上手动执行shell脚本时,整个流程按预期工作。但是,当我将shell脚本作为cronjob执行时,在python多线程步骤完全完成之前,流似乎会进入下一步


在python程序内部,我确实调用AsyncResult.get(timeout)等待所有结果返回,然后再继续。

通过批处理(1)运行程序(请参见命令的输出
人工批处理
)。如果这可以正常工作,但是cron版本不行,那么几乎可以肯定环境变量设置有问题。要验证这一点,请从交互式shell运行
printenv
,以检查您的环境。然后在crontab中执行同样的操作(您只需要临时为它设置一个额外的cron条目)。在调用Python之前,请尝试在shell脚本中设置变量

另一方面,如果它也不能通过批处理(1)工作,则可能与代码打开的文件有关。尝试运行shell脚本,输入从/dev/null重定向,输出转到文件:

$ /usr/local/bin/myscript </dev/null >|/tmp/outfile.txt 2>&1
$/usr/local/bin/myscript |/tmp/outfile.txt 2>&1

尝试在
crontab
中设置
“TERM=xterm”
(或任何您拥有的env变量,通过终端上的命令“env”计算出来)您可以发布您的cronjob吗?另外,“程序是一步”是什么意思?它是shell脚本中的一个命令。请看以下内容: