在我的 Ubuntu 18.04 機器上,我有一個 Python 腳本,需要每 x 小時(比如說 3 小時)運行一次,我會使用crontab它。但是一旦腳本啟動,可能需要超過 x 小時才能完成(比如說 5 小時)。這意味著下一次啟動已經到期,而第一次啟動仍在運行。由于各種原因,我不能簡單地增加腳本啟動之間的時間間隔,而必須依賴于特定的設定。
在 Windows 任務計劃程式中,有一個選項可防止在腳本仍在運行時啟動新實體。Linux有類似的東西crontab嗎?
uj5u.com熱心網友回復:
如果您可以將其安裝在系統上,flock是一個很好的解決方案。
假設您的 crontab 中有以下內容:
0 */3 * * * my_script.sh
您可以通過flock添加鎖定檢查,如下所示:
0 */3 * * * flock /tmp/my_script.lock my_script.sh
您也可以通過一些選項 - 例如,您可以讓 flock 最多等待 2 分鐘以解決先前的鎖定問題,如下所示:
0 */3 * * * flock -w 120 /tmp/my_script.lock my_script.sh
如果您無法安裝flock,那么您可以撰寫自己的“鎖定”檔案并在完成更多作業后將其洗掉 - 或者您可以考慮使用pgrep。
這里有更多關于羊群和 pgrep 選項的資訊
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/468549.html
