Crontab启动Python脚本,但SystemD不启动吗?

问题描述 投票:0回答:1

我可以通过ssh登录到我的AWS EC2服务器并输入:

cd /opt/myWebApp
sudo python3 /opt/myWebApp/manage.py myCronJob

...它运行。

我也可以通过crontab启动相同的脚本:

0 */6 * * * sudo python3 /opt/myWebApp/manage.py myCronJob --settings=server.settings.production 

但是当我尝试在SystemD中使用.service文件运行它时:

ExecStart='/usr/bin/python3.7' /opt/myWebApp/manage.py myCronJob --settings=server.settings.production

...我得到:

[ImportError:无法导入Django。您确定已在PYTHONPATH环境变量中安装并使用该变量吗?您忘了激活虚拟环境吗?

$PYTHONPATH$VIRTUAL_ENV为空。 /opt/myWebApp/server_venv也为空。 /usr/bin/python3.7处有一个python,但如上所述,我在SystemD .service文件中引用了它,并引发了该错误。

我想念什么?

python django unix amazon-ec2 systemd
1个回答
0
投票

解决了!

ExecStart='/etc/alternatives/python3' ./manage.py myCronJob --settings=server.settings.production
WorkingDirectory=/opt/myWebapp
User=myUser

该用户(以上代码中的'myUser')有权访问Django。

© www.soinside.com 2019 - 2024. All rights reserved.