Cron 不启动 Python 脚本

Cron 不启动 Python 脚本

Python 脚本未运行,所有其他函数都在运行,独立脚本运行但组合起来...什么都没有。最初是这样的*/30 * * * * screen python ~/db_preset.py (是的,后面有换行符)

然后我将脚本打包成bash脚本:

#!/bin/sh
if ps -ef | grep -v grep | grep db_preset.py ; then
        :
else
        date >> ~/cron_log.log
        screen python /home/account/db_preset.py     
fi

并调用它 */30 * * * * bash ~/scripts.sh

日期已记录,因此它到达该部分,但脚本从未启动

当我尝试简单的 cron 时*/2 * * * * date >> ~/cron_log.log,效果很好

编辑

我尝试将 python 路径更改为/usr/local/bin/python2.7 /home/account/db_preset.py; touch ~/a_command_has_run

文件已创建,因此最终运行该行 手动运行时代码也很好

答案1

这很可能是一个路径问题。

执行:哪个 python

它可能位于 /usr/bin/python。

然后更改脚本以调用完整路径,即:/usr/bin/python /home/account/db_preset.py

答案2

通过 cron 启动的命令的错误消息会通过邮件发送。如果您查看邮件池,应该会发现以下错误消息:Must be connected to a terminal.

这是因为您正在尝试启动screen附加功能,这需要终端,而运行的作业cron没有终端。

从 开始新screen会话cron听起来有点可疑。您可能应该省略该screen部分。如果您绝对必须screen在没有终端的情况下启动,那么请以分离方式启动它。例如:

screen -dmS somename python ~/db_preset.py

相关内容