python - Crontab 在重新启动时不运行 Python 脚本

标签 python linux bash shell raspberry-pi

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

我的定时任务:

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

周一开始.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'

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

最佳答案

如果您的 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 的所有输出,就像我在上面的示例中所做的那样。

关于python - Crontab 在重新启动时不运行 Python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48038293/

相关文章:

python - 一种确定字典值是否全部为空列表的方法

python - 仅在点图中的 x 轴上显示整数

java - 使用 jsch 执行命令 ntpq -p

python - 是否可以在 CLI 中修改 json 对象?

linux - 使用 bash 脚本获取文件名

python - 如何从 Falcon 中的 POST 请求读取原始 json 请求

Python 使用系统 SSL 证书?

java - 什么时候出现以下错误 "org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory"

regex - 为什么我的包含转义 $ 的 Perl 单行语句在 Bash 反引号内不起作用?

linux - 无论如何要更改默认的 exec 调用长度?