歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux基礎知識

Linux下判斷是否正常關機的一個簡單方法

 

思想:系統啟動的時候生成一個文件,正常關機的時候則刪除這個文件,則可以根據系統開機時有沒有那個文件來判斷是不是非正常關機。

步驟:

在/etc/rc.d/init.d/下編程腳本。

判斷是否正常關機,和生成文件的腳本:touch-file.sh

#!/bin/sh
file=/tmp/check
if [ -e ${file} ];then
echo "this is not normal shutdown" >>/var/log/checkmessage
else
echo "this is normal shutdown and touch file" >>/var/log/checkmessage
touch ${file}
fi

正常關機刪除文件的腳本:rm-file.sh

#!/bin/sh
file=/tmp/check
echo "this is normal shutdown and rm file" >>/var/log/checkmessage
rm -rf ${file}

讓腳本自動執行。

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
Copyright © Linux教程網 All Rights Reserved