【发布时间】:2020-01-01 21:51:34
【问题描述】:
我有一个在 AWS EC2 上运行的 cronjob,我通常通过 crontab 启动它:
0 */6 * * * sudo python3 /opt/homeDirectoryForMyApp/manage.py myCronJob --settings=server.settings.production
这按预期正常工作。现在我正在尝试通过 SystemD 启动相同的工作。
myCronJob.service:
[Unit]
Description=myCronJob Service
Wants=myCronJob.timer
[Service]
ExecStart='/usr/bin/python3.7' manage.py myCronJob --settings=server.settings.production
WorkingDirectory=/opt/homeDirectoryForMyApps/
[Install]
WantedBy=multi-user.target
myCronJob.timer:
[Unit]
Description=launch myCronJob
Requires=myCronJob.service
[Timer]
Unit=myCronJob.service
OnCalendar=00/2:10
[Install]
WantedBy=rss.target
我在 journalctl 中收到了这个(通过 journalctl -u myCronJob):
Jan 02 22:45:03 ip-###-##-#-### systemd[3760]: myCronJob.service: Failed at step CHDIR spawning /usr/bin/python3.7: No such file or directory
但/usr/bin/python3.7 确实存在于该路径:
ubuntu@ip-###-##-#-###:/etc/systemd/system$ cd /usr/bin
ubuntu@ip-###-##-#-###:/usr/bin$ ls python3.7
python3.7
我错过了什么?
【问题讨论】:
-
它显示“在 CHDIR 步骤失败”。你确定你指定的
WorkingDirectory正确吗? -
是“manage.py”所在的目录吗?如果是,那么是的。
-
我问是因为您在 crontab 中拼写为
homeDirectoryForMyApp,在单元文件中拼写为homeDirectoryForMyApps。如果您可以将删除的 crontab 和单元文件的版本替换为您实际使用的文件,则更容易判断这是错字还是其他原因。 -
你是对的!我的实际配置文件中有同样的错字。这解决了这个错误。谢谢!如果您想将其发布为答案,我会将其标记为已接受。
-
我已将其添加为答案。
标签: python unix amazon-ec2 systemd