幕後黑手 crontab

cody發表於2020-04-18

前端時間搭了一服務,這個服務需要每隔一定的時間處理一些業務,因為用的 Mac 系統很自然就想到了使用 crontab,網上查了一下 crontab 的用法很快就配置完畢了。但是好景不長,自從配置完定時任務後,每隔一段時間這臺伺服器就會莫名的卡死,頭幾次單蠢的認為只是簡單的機器故障,我使用了大招【重啟大法】解決了。但是因為上面有些服務不能啟動自拉啟,重啟一次有些麻煩。恰好今天又出現了,就詳細排查了一下原因,當我檢視程序的時候,我這個人都麻了

... 這裡我省略了N行類似的記錄

root               499   0.0  0.0  4298116    376   ??  S    12:15PM   0:00.00 /usr/sbin/cron
root               251   0.0  0.0  4290180    964   ??  Ss   12:14PM   0:00.01 /usr/sbin/cron
root              1007   0.0  0.0  4298116    376   ??  S    12:48PM   0:00.00 /usr/sbin/cron
root              1173   0.0  0.0        0      0   ??  Z    12:50PM   0:00.00 (cron)
root              1090   0.0  0.0        0      0   ??  Z    12:49PM   0:00.00 (cron)
root              1017   0.0  0.0        0      0   ??  Z    12:48PM   0:00.00 (cron)

啟了這麼多程序,而且還有 N 多殭屍程序,媽個雞。

為什麼會啟這麼多程序?為什麼還有這麼多殭屍? 小朋友我真的有很多問號??????

難道定時執行的指令碼有 Bug?我手動執行了一下,輸出正常。
難道定時執行的指令碼許可權不對?我又檢視一下指令碼的許可權,所有組別都有執行許可權。
我在哪兒?我是誰?我要幹啥??? 好吧,我上個廁所冷靜一下。

這麼成熟的東西不應該有問題,肯定是我開啟姿勢不對,又在網上看看了別人寫的例子,偶然發現都把輸出幹掉了 /dev/null 2>&1
我嘗試著加了一下,媽呀! 好了。。。

有修改了一下關鍵詞查了查,發現有人確實也有對應的情況,但是他解釋了因為指令碼的日誌輸出會觸發系統sendmail,因為內容多就堆積了。。。好吧,我大概也是如此了。

相關文章