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