簡體   English   中英

Crontab 啟動 Python 腳本但 SystemD 不啟動?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM