回覆列表
-
1 # AioT智慧家居
-
2 # 程式設計師小助手
簡單了說,你需要的僅僅是一個守護程序。
在 Linux 系統下,有很多應用是需要不間斷處理任務的,比如 sshd 服務,mysqld 服務。
現在的 CENTOS7 發行版,預設使用 systemd 作為系統程序啟動管理工具。
如果用windows的方法來說,就叫——“服務”。
下圖就是 systemd 作者Lennart Poettering
如何新增一個系統服務?Linux下很簡單,使用 systemd 可能你僅需要一個
mytask.service
檔案,並輸入類似以下內容:上面這個就是讓 systemd 控制你的指令碼
mytask.sh
不退出。一旦發生退出,就在30秒內重啟。而
mytask.sh
檔案可以自由發揮。只要求一點,如果有系統級的 exit,就會觸發 systemd 的 Restart 配置項,進行重啟。結語所以,你不需要 exit,也應該儘量避免 exit。
錯誤異常,可以手動收集處理。
-
3 # 知了小巷
24小時執行的程式即程式在後臺被執行後不在程序被外部kill的話,一直執行著。
通用模式是while(true){...}
然後在...省略號裡進行業務邏輯的程式碼展開和實現,比如分層,建立新的執行緒非同步執行埠監聽等等。
可以透過watchdog機制來保證程式24小時執行。總之你得有一個程式監控你的程式執行,並且在它崩潰的時候及時拉起來。