讓Linux服務(wù)器在kernel panic時自動重啟
現(xiàn)在的 Linux 比幾年前要成熟的多,但有時候還是會出現(xiàn)莫名其妙、無法解釋的 kernel panic 情況。對于大部分 Linux 用戶來說出現(xiàn) kernel panic 重啟一下就可以了,但是對于系統(tǒng)管理員和那些做虛擬主機(jī)、共享主機(jī)、OpenVZ VPS 主機(jī)的 hosting 服務(wù)商來說出現(xiàn)未知的 kernel panic、導(dǎo)致系統(tǒng)掛掉可能就不太友好,如果沒有 KVM over IP 的話,系統(tǒng)掛掉后 hosting 服務(wù)商需要自己先反饋到上一級的獨立服務(wù)器提供商,比如提交 ticket 或者打電話,然后獨立服務(wù)器供應(yīng)商還要時間驗證你的資料、處理你的 ticket,最后才到真正的數(shù)據(jù)中心,一般晚上(中國的白天)數(shù)據(jù)中心只有幾個人值班,到最后處理完你的重啟 ticket 可能已經(jīng)過了20多分鐘了,這20分鐘的 downtime 時間你還要給你自己的客戶寫信解釋情況,問題是這20分鐘還是理想情況,如果你碰到一個很爛的獨立服務(wù)器提供商或數(shù)據(jù)中心,處理 ticket 要以小時或天為單位來計,或者如果你是 one man、晚上正在睡覺沒有收到 kernel panic 報警,這樣的話花的時間就會更多。那么有沒有辦法讓 Linux 服務(wù)器遇到 kernel panic 情況自動重啟呢?VPSee 在這里介紹一個簡單有效的小技巧:
編輯 /etc/sysctl.conf 文件,并定義遇到 kernel panic 20秒后自動重啟 Linux:
# vi /etc/sysctl.conf
kernel.panic = 20Linux 這么神奇?遇到 kernel panic 自己都不行了還能自己自動重啟?來看看 Linux 內(nèi)核里面這部分代碼是怎么工作的,最好最權(quán)威的資料永遠(yuǎn)來自內(nèi)核源代碼:
# vi linux-2.6.31.8/kernel/panic.c
liren