SystemD 安装程序找不到 Python?

SystemD Setup Can't Find Python?

我在 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

我错过了什么?

您看到的错误是:

Failed at step CHDIR spawning /usr/bin/python3.7: No such file or directory

这表明问题实际上在于单元文件中的 WorkingDirectory 设置(step CHDIR 表示 "the error occurred when trying to change directory")。

您的单元文件中的 WorkingDirectory 路径可能有错字。