每隔一小時左右重新啟動一次 python 腳本

每隔一小時左右重新啟動一次 python 腳本

所以我有一個 python 腳本,只需輸入腳本名稱(python SCRIPTNAME.py)即可在終端機中啟動該腳本

我只是想知道是否可以製作一個腳本或 cron 作業,每小時停止然後啟動該 python 腳本?

答案1

最好的方法是透過 GNU,timeout 如下所示

timeout -k 3600 python3 /path/to/script.py

其中 -k 代表“kill after”,時間以秒為單位。

因此,要讓腳本每小時運行、終止並重新啟動,您可以這樣做

while timeout -k 3600 python3 /path/to/script; do
   sleep 2
done

只是sleep 2在重新啟動之前添加一點延遲


或考慮使用 Python 中的 Threading 模組來調度腳本的相關部分。看 https://stackoverflow.com/a/50537798/3701431

答案2

聽起來你想要守護程式,或為您的 Python 腳本建立服務。這就是其他應用程式啟動的方式,並以正確的順序或在正確的時間啟動。

您需要systemd為 Python 腳本建立一個服務,然後透過systemctl.

systemctl restart mypython
systemctl enable mypython

一旦您的腳本以這種方式運作,您就可以設定cron執行您需要的任何操作,這可能是重新啟動服務。

根據腳本的目標以及您確定腳本是否正常運行的能力,您可以增強服務以報告腳本是否停止運行,甚至研究以下解決方案monit


正如所指出的,這個答案提供有用的信息,但包含過時的工具,例如rc.local.systemd您可以追蹤進程的 PID,然後終止該進程並每小時重新執行腳本,而不是使用。

相關內容