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

2021-12-30 07:34:21 字數 1199 閱讀 7298

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

步驟:

在/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

Linux環境下判斷伺服器是否正常關機

2009 05 17 來自 zdnet 收藏系統啟動的時候生成乙個檔案,正常關機的時候則刪除這個檔案,則可以根據系統開機時有沒有那個檔案來判斷是不是非正常關機。系統啟動的時候生成乙個檔案,正常關機的時候則刪除這個檔案,則可以根據系統開機時有沒有那個檔案來判斷是不是非正常關機。步驟 在 etc rc....

Linux環境下判斷伺服器是否正常關機

啟動時生成乙個檔案,然後關機時把它刪掉。下次啟動時,如果這個檔案還在,就說明上次不是正常關機了。把刪除檔案的指令碼寫在 etc rc6.d 和 etc rc0.d 下,把判斷是否正常關機和生成檔案的指令碼放在 etc rc3.d 和 etc rc5.d 下。如果系統沒有預設的方法,我就按照flw的方...

Linux的正常關機

azure 上的iaas 虛擬機器可使用多種方式關閉,例如通過 azure 管理門戶 azure powershell cmdlet 或cli 工具,甚至還可以由互動式登入的使用者關閉。azure 平台本身甚至也能關閉虛擬機器以執行平台維護。執行在本地裸機中的 linux 系統的關閉流程很好理解,但...