[英]Crontab Launches Python Script but SystemD Does Not?
我可以通過 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
...我得到:
導入錯誤:無法導入 Django。 您確定它已安裝並在您的 PYTHONPATH 環境變量中可用嗎? 您是否忘記激活虛擬環境?
$PYTHONPATH
和$VIRTUAL_ENV
是空的。 /opt/myWebApp/server_venv
也是空的。 在/usr/bin/python3.7
有一個 python,但我在上面提到的 SystemD .service 文件中引用了它,它拋出了那個錯誤。
我錯過了什么?
解決了!
ExecStart='/etc/alternatives/python3' ./manage.py myCronJob --settings=server.settings.production
WorkingDirectory=/opt/myWebapp
User=myUser
用戶(上面代碼中的“myUser”)可以訪問 Django。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.