我有一個腳本,它真的是越野車,每過幾個小時它就會因爲錯誤而停下來。我不用Python編寫代碼,但我知道基礎知識,所以我想知道如何製作腳本來檢查另一個腳本是否有錯誤,如果它是真的,只需重新運行它? 對不起,沒有給出任何例子,但我想你明白了,因爲我不擅長Python,因此比試圖理解腳本並編輯它更容易。任何幫助是極大的讚賞。檢查一個python腳本是否正常運行,如果它沒有重新運行它?
回答
到目前爲止,最簡單的方法是等待它退出並在崩潰時總是重新啓動;該程序運行時,以下bash
循環會做什麼,並會盡快退出重新啓動:
while true
do
python buggy_script.py arguments
echo oops, restarting...
done
就是這樣。它會永遠運行,直到你殺死運行它的bash腳本。
PS。當然,這假設你在OS X或Linux上;如果您使用Windows,請使用等效的批處理或PowerShell腳本。
我建議使用PowerShell而不是批處理;一批對我來說很可怕。 – GingerPlusPlus
當然,PowerShell呢。任何有循環的東西都可以。 – alexis
您可以爲該腳本創建一個守護程序。
基本上將主要功能保留在永久運行的循環中。 import logging import time if __name__ == '__main__': while True: //log errors logging.basicConfig(filename='log_file.log', level=logging.DEBUG) // use try except to handle exceptions try: // your code statements and function calls except Exception as e: // log the error for debugging logging.error(str(e)) // sleep the program if you want it to for desired amount of time. time.sleep(delay)
我設置的日誌級別是調試。您可以將其設置爲您自己選擇的任何其他設置。
參考文獻:
記錄文檔 - https://docs.python.org/3/library/logging.html
處理異常 - https://docs.python.org/3/tutorial/errors.html#handling-exceptions
- 1. 批量檢查如果程序正在運行,如果沒有,運行它
- 2. 檢查是否python腳本運行
- 3. 檢查進程是否正在運行,如果不啓動它
- 4. 如何檢查memcached是否正在運行,如果不是從python啓動它?
- 5. 檢查進程是否正在運行,如果沒有運行的腳本執行代碼行
- 6. 腳本來檢查腳本運行並啓動它,如果它停止
- 7. 如何檢查一個bash腳本是否正在運行並退出,如果它是
- 8. 如何檢查應用程序是否正在運行,否則運行它?
- 9. 檢查Cookie,如果它不存在運行腳本
- 10. 只運行python腳本如果它是git提交
- 11. 腳本來檢查IIS是否運行
- 12. 如何運行一個目標只有它沒有運行?
- 13. 重新運行PHP腳本沒有javascript
- 14. 沒有它運行
- 15. 遞歸運行一個命令,並檢查它是否存在
- 16. PHP - 檢查,看是否有腳本運行它,循環瀏覽器永遠
- 17. 如何檢查python腳本(test.py)是否在Windows 10上運行
- 18. 檢查是否存在行,如果沒有添加它[MySQL]
- 19. 檢查,如果腳本正在運行的10倍,如果沒有重新啓動
- 20. 如果正在執行另一個腳本,防止運行python腳本
- 21. 如何通過批處理文件檢查服務是否正在運行並啓動它(如果未運行)?
- 22. 如果我修改批處理腳本,而它正在運行
- 23. 一個腳本正常運行,這兩個腳本無法運行
- 24. 更新活動,如果它正在運行,或者通知用戶它沒有運行(來自BroadcastReceiver)
- 25. Cron腳本運行正常,但沒有更新Django數據庫
- 26. 腳本檢查file.html是否存在,如果是,運行另一個腳本,否則死亡?
- 27. Powershell - 如果一個進程沒有運行,啓動它
- 28. Bash腳本檢查進程是否正在運行
- 29. shell腳本 - 檢查mongod服務器是否正在運行
- 30. 檢查ahk(autohotkey)腳本是否正在運行
哪來的腳本內容?請回顧[如何創建最小,完整和可驗證示例](http://stackoverflow.com/help/mcve) –
這就是[supervisord](http://supervisord.org/)等類似的工具。對於。嗯,不是真的,腳本應該是固定的,但過程控制器至少可以進行監視和重新啓動。 – dhke
內容是無關緊要的,我要求一種方法來檢查腳本是否停止,無論錯誤是什麼 –