我有一個腳本,它真的是越野車,每過幾個小時它就會因爲錯誤而停下來。我不用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. 只運行python腳本,如果它沒有運行
- 2. 批量檢查如果程序正在運行,如果沒有,運行它
- 3. 檢查是否python腳本運行
- 4. 檢查進程是否正在運行,如果不啓動它
- 5. 運行Python腳本它
- 6. 檢查程序是否正在運行,如果不在perl中運行它
- 7. 如何檢查memcached是否正在運行,如果不是從python啓動它?
- 8. 如果它已經在運行,請不要運行python腳本
- 9. 檢查進程是否正在運行,如果沒有運行的腳本執行代碼行
- 10. 如何檢查一個bash腳本是否正在運行並退出,如果它是
- 11. 腳本來檢查腳本運行並啓動它,如果它停止
- 12. 如何檢查應用程序是否正在運行,否則運行它?
- 13. BASH - 檢查它沒有運行相同的腳本
- 14. Java檢查進程是否正在運行,如果沒有運行文件?
- 15. 檢查Cookie,如果它不存在運行腳本
- 16. python:檢查IP地址是否正在運行的腳本
- 17. 只運行python腳本如果它是git提交
- 18. 有沒有辦法檢查腳本是否由PowerShell ISE運行?
- 19. 腳本來檢查IIS是否運行
- 20. 檢查腳本是否成功運行?
- 21. 如何運行一個目標只有它沒有運行?
- 22. Batch \ CMD:檢查Apache是否正在運行,否則啓動它
- 23. 沒有它運行
- 24. 重新運行PHP腳本沒有javascript
- 25. 我的AJAX腳本將正常運行一次,但它不會再次運行
- 26. 遞歸運行一個命令,並檢查它是否存在
- 27. PHP - 檢查,看是否有腳本運行它,循環瀏覽器永遠
- 28. 如何檢查python腳本(test.py)是否在Windows 10上運行
- 29. 如何檢測我的新貴腳本是否正在運行?
- 30. 如何檢查Powershell腳本是否正在遠程運行
哪來的腳本內容?請回顧[如何創建最小,完整和可驗證示例](http://stackoverflow.com/help/mcve) –
這就是[supervisord](http://supervisord.org/)等類似的工具。對於。嗯,不是真的,腳本應該是固定的,但過程控制器至少可以進行監視和重新啓動。 – dhke
內容是無關緊要的,我要求一種方法來檢查腳本是否停止,無論錯誤是什麼 –