一千萬個為什麽

搜索

代碼在幾個小時後停止,覆盆子py凍結。 (pymodbus + rs485 + raspberry pi)python代碼

我正在使用pymodbus從傳感器4收集一些數據,每秒讀取一次。該程序是連續循環但問題是樹莓pi每隔幾個小時(60小時)凍結。 代碼自動停止。不能ping設備但cronjobs運行正常。 使用以太網進行其他一些活動往往會加深問題,因為現在它的凍結速度更快(8小時)。 我已經檢查了內存使用情況和系統使用情況,兩者都沒問題。 代碼是在Github 。

最佳答案

Raspberry Pi內置了硬件監視計時器。 對於Raspbian 要立即加載監視程序內核模塊,請發出以下命令: $ sudo modprobe bcm2708_wdog

下次系統啟動時加載模塊,使用“bcm2708wdog”在/ etc/modules文件中添加一行。 -a選項確保tee附加。 $ echo "bcm2708wdog" | sudo tee -a /etc/modules

使用您喜歡的編輯器打開/etc/watchdog.conf $ sudo nano /etc/watchdog.conf

通過刪除散列(#)以使監視程序守護程序使用監視程序設備,取消註釋以#chegdog-device開頭的行。 如果負載在1分鐘內超過24,則取消註釋#max-load-1 = 24的行,刪除哈希符號以重啟設備。一分鐘25加載意味著您​​需要25 Raspberry Pis才能在1分鐘內完成該任務。您可以根據自己的喜好調整此值。 如果您還沒有安裝chkconfig,請安裝它 $ sudo apt-get install chkconfig $ sudo chkconfig watchdog on

您可以通過在控制臺中執行 fork bomb 來測試它。 :(){ :|:& };:

這是重新啟動任何類型的硬件或偵聽某些事件的專業方法。您甚至可以使用監視程序根據您獲得的數據啟動某些腳本。像高風速可以發送警告電子郵件或其他東西...... 來源

轉載註明原文: 代碼在幾個小時後停止,覆盆子py凍結。 (pymodbus + rs485 + raspberry pi)python代碼