簡體   English   中英

如果結束,重新啟動python腳本的最佳方法是什么? (Ubuntu 18.04)

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

monit 將滿足您的需求,您可以將其配置為監控您的 python 腳本並在失敗時重新啟動它們。

配置起來有點快

參考: https : //mmonit.com/monit/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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