所以我有一個 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,然後終止該進程並每小時重新執行腳本,而不是使用。