2008年7月15日 星期二

kernel panic時自動reboot

我是linux使用上很新的新手,雖然我正在寫linux的driver,不過寫程式本來就和os的使用熟練與否不需要正相關

還好我有一個對linux很熟的學弟,可以隨叫隨問

最近在寫網卡的driver,因為driver是在kernel space,所以只要任何一個地方寫錯就會造成kernel panic,於是開發平臺就要開開關關………

而每一次開機就要好久,除了因為linux本身開機就久之外,還因為我不是正常關機………

學弟教了我一個方法讓linux在kernel panic時自動重開

可以去設定/proc/sys/kernel/panic的值,預設是0,也就是不自動重開,若將其值設成3,如
echo 3 /proc/sys/kernel/panic
則機器會在kernel panic 3 秒後自動重開

但是學弟說此方法每次重開機都要重寫一次,於是又教了我一個永久設定該值的方法
去修改/etc/sysctl.conf,在最下面新增一行kernel.panic = 3
於是每次重開機後/proc/sys/kernel/panic的值都是3

從此以後,kernel panic後重開機的速度快了不少

另外,由於linux tty放久了會自動logout,即使用console login也是一樣,此時沒法判斷是kernel panic後自動重開,還是放久了自動logout,學弟又教了一招
uptime
會顯示開機後運行多久時間,格式是 時:分,也就是說,若顯示01:09,表示開機後到現在已經經過了1小時又9分鍾,這樣就可以判斷中間是否有發生過kernel panic了

沒有留言: