跑了幾個策略後台進程,吃了個虧:


明明進程在跑、資料也是新的,PM2 卻顯示已停。
如果信 PM2 直接 restart,反而把還在幹活的進程打斷了。
後來明白:PM2 / launchd / pid 檔案,都只是看護層登記的狀態 —— 它有沒有把進程記上,跟進程實際在不在跑,是兩回事。
真死活要看進程自己產出的健康檔案 —— 最近一次更新是幾分鐘前 + 進程數對得上 = 活著。
寫了個巡檢腳本,每個進程同時報 4 個值:
- 進程在不在 (用 ps 查)
- PM2 / launchd 有沒有登記
- 健康檔案多久前更新過
- 三個對不對得上
只要健康檔案是新的,就不當死亡處理。
工程教訓:判斷"系統活沒活",不要看你建的看護層怎麼說,看系統自己產出的東西新不新。
查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 打賞
  • 回覆
  • 轉發
  • 分享
回覆
請輸入回覆內容
請輸入回覆內容
暫無回覆