[英]Best way to restart python script if it ends? (Ubuntu 18.04)
我有一些用 Python 編寫的 Discord 機器人,它們會在幾個小時后因任何原因停止。 我想要一種方法來監視它們並在它們出現故障時重新啟動它們。 我已經尋找了一些解決方案,包括 bash 腳本、crontab 和 systemd,但它們似乎都不適合我。
即使使用簡單而真實的 bash 腳本,它也會由於某種原因而失敗。 由於我認為是環境問題,crontab 不會運行,顯然 systemd 僅適用於服務?
所有的python腳本都位於/home/username/folder/script.py
我還希望能夠輕松暫停重新啟動腳本的服務,因為有時我必須使用 git 更新代碼。
我想出了如何用 systemd 解決我的問題。
首先導航到:
/etc/systemd/system
然后以 root 身份創建一個新服務:
sudo nano example.service
使您的服務文件像這樣:
[Unit]
Description=Restarts example.py if it closes
[Service]
User=your username
WorkingDirectory=/directory/of/script
ExecStart=/usr/bin/python3 /directory/of/script/example.py
Restart=always
[Install]
WantedBy=multi-user.target
然后輸入這個讓 systemd 重新加載服務文件。
sudo systemctl daemon-reload
然后你可以啟動你的服務:
sudo systemctl start example.service
最后,檢查您的服務的狀態:
sudo systemctl status example.service
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.