【问题标题】:SystemD Setup Can't Find Python?SystemD 安装程序找不到 Python?
【发布时间】: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


【解决方案1】:

您看到的错误是:

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

这表明问题实际上在于您在单元文件中的WorkingDirectory 设置(step CHDIR 表示“尝试更改目录时发生错误”)。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-10
    相关资源
    最近更新 更多