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