我编写了一个简单的 Python 脚本,使用 Pushbullet 发送通知。该命令在终端中运行正常,但无法自动运行。Cron 的系统日志:
Nov 29 18:33:01 ubuntu CRON[4255]: (root) CMD (usr/bin/python3 IdeaProjects/TradingScript/src/test.py >/dev/null 2>&1)
Nov 29 18:34:01 ubuntu CRON[4266]: (root) CMD (/usr/bin/python3 IdeaProjects/TradingScript/src/test.py >/dev/null 2>&1)
Nov 29 18:35:01 ubuntu CRON[4278]: (root) CMD (/usr/bin/python3 IdeaProjects/TradingScript/src/test.py >/dev/null 2>&1)
Nov 29 18:36:01 ubuntu CRON[4288]: (root) CMD (usr/bin/python3 /IdeaProjects/TradingScript/src/test.py >/dev/null 2>&1)
Nov 29 18:37:01 ubuntu CRON[4297]: (root) CMD (usr/bin/python3 /IdeaProjects/TradingScript/src/test.py >/dev/null 2>&1)
Nov 29 18:38:01 ubuntu CRON[4307]: (root) CMD (/usr/bin/python3 /IdeaProjects/TradingScript/src/test.py >/dev/null 2>&1)
答案1
我猜问题出在环境上,因为 cron 没有完整的 root 环境。
02 4 * * * su - root -c'/IdeaProjects/TradingScript/src/test.py >/dev/null 2>&1'
使用此 cron 条目获取完整的 root 环境。这应该可行。
答案2
问题解决了:)我使用 sudo 打开 corntab,因此脚本以 root 身份执行,我在没有 sudo 的情况下打开了 crontab,并在代码中添加了相同的行
* * * * * python3 IdeaProjects/TradingScript/src/test.py >/dev/null 2>&1
并且成功了