Crontab在重启时不运行Python脚本

时间:2017-12-30 22:07:48

标签: python linux bash shell raspberry-pi

我有两个python脚本供我的应用程序使用。 我希望它们在启动时启动,但只有一个(gunicorn / mon)脚本启动。

我的Crontab:

@reboot /home/daniel/mon/start.sh
@reboot /home/daniel/bot1/start.sh

Mon start.sh

#!/bin/bash
/usr/bin/screen -dmS bb-mon /bin/bash -c 'cd /home/daniel/mon && 
/usr/local/bin/gunicorn app:app --bind 0.0.0.0:9999'

作品。

Bot1 start.sh

#!/bin/bash
/usr/bin/screen -dmS bb-bot /bin/bash -c 'cd /home/daniel/bot1 && 
/usr/bin/python3 app.py'

不工作。我在屏幕会话中测试了几个输出。屏幕会话也将启动,但python脚本无法启动。 如果我在python调用后添加类似> log.txt的内容,则文件为空。 没有屏幕启动脚本也不起作用。

1 个答案:

答案 0 :(得分:-1)

如果你的cron设置正确,你应该在cronjob失败时收到一封电子邮件。

但由于bash调用screen调用bash来运行Python的复杂设置,因此可能未记录错误。

尝试使用脚本的绝对路径直接从cron运行Python:

@reboot /usr/bin/python3 /home/daniel/bot1/app.py 2>&1 > /var/log/bot1.log

我建议您在日志文件中捕获app.py的任何输出,正如我在上面的示例中所做的那样。