我有两个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
的内容,则文件为空。
没有屏幕启动脚本也不起作用。
答案 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
的任何输出,正如我在上面的示例中所做的那样。