Rhel

可以在啟動和關閉時呼叫 init.d 中的服務腳本嗎?

  • December 6, 2011

我正在執行 Red Hat 5.1。我有一個名為 sysinit 的腳本,我使用 chkconfig –add sysinit 作為服務添加了它。我在文件中有以下設置:

#chkconfig 4 01 01

這會在我的 rc4.d 目錄中為 S01sysinit 創建一個符號連結。但是,我希望腳本在啟動和關閉時執行。無論我做什麼,我都無法讓自定義腳本(服務)在關機時執行。我什至嘗試將我的功能分成兩個腳本,一個在 S01 執行,另一個在 K01 執行,但它不起作用。我不想求助於修改 rc.sysinit 文件來做我的腳本應該做的事情(我不應該碰我想的)。我需要這樣做的原因是因為我需要在 rc.sysinit 文件嘗試解除安裝 /opt 目錄之前解除安裝 /opt 目錄中的 samba 共享(現在我得到“設備忙”失敗,因為 cifs 掛載是還在那兒)。

我需要做一些特別的事情,以便我的腳本可以在啟動、關閉和重新啟動時執行嗎?我可以在同一執行級別中擁有 K01sysinit 和 S01sysinit 嗎?還是我誤解了執行級別的工作原理?

我已經在腳本中有 )start 和 )stop 部分。

我找到的解決方案是添加以下程式碼:

   touch /var/lock/subsys/<scriptname> 

當 etc/rc.d/rc 文件嘗試從標有 K* 的符號連結執行腳本時,它正在尋找鎖定文件。如果沒有該文件,系統將不知道“服務”正在“執行”。

是的,您應該同時擁有 S 和 K。離開上述關卡時應執行 K 腳本。您可能想要使用的搜尋詞是“ System V Init ”或“ telinit ”。

是否chkconfig按預期安裝符號連結?

引用自:https://unix.stackexchange.com/questions/24354