系統啟動的時候生成一個文件,正常關機的時候會刪除這個文件。網管員們則可以根據系統開機時有沒有那個文件來判斷是不是非正常關機,減少網絡管理過程中出現故障的機率。
步驟:
在/etc/rc.d/init.d/下編程腳本。
判斷是否正常關機,和生成文件的腳本:touch-file.sh
#!/bin/sh file=/tmp/check if [ -e $ ];then echo "this is not normal shutdown"
>>/var/log/checkmessage else echo "this is normal shutdown and touch file"
>>/var/log/checkmessage touch $ fi
正常關機刪除文件的腳本:rm-file.sh
#!/bin/sh file=/tmp/check echo "this is normal shutdown and rm file"
>>/var/log/checkmessage rm -rf $
讓腳本自動執行。
ln -s /etc/rc.d/rc0.d/K01rm-file /etc/rc.d/init.d/rm-file.sh
注意:
#ll /etc/rc.d/rc0.d/
軟連接兩邊的名字不哪呢個相同,後一個可以用絕對路徑或是相對路徑,千萬保證兩邊的名字不一樣。
ln -s /etc/rc.d/rc6.d/K01rm-file /etc/rc.d/init.d/rm-file.sh ln -s
/etc/rc.d/rc3.d/S01touch-file /etc/rc.d/init.d/touch-file.sh
我的系統沒用到x-window,所以沒有level5,也就是不用在/etc/rc.d/rc5.d/下放腳本。
特別注意:
K開頭的代表系統關閉的時候執行,S開頭的代表開機的時候執行。注意服務器腳本編寫的規范,因為有K開通的軟鏈接並不一定會在關機的時候自動去執行,這是為什麼呢?執行K腳本的時候會查詢/var/lock/subsys/下是否有與K開頭腳本同名的空文件名,如果沒有就不去執行,所以要按照服務器腳本編寫的規范,啟動的時在/var/lock/subsys/先touch一個與K01後面同名的空文件:
#/var/lock/subsys #touch fm-file