Linux中如何設置服務自啓動?

有時候我們需要Linux系統在開機的時候自動加載某些腳本或系統服務,主要用三種方式進行這一操作:

  1. ln -s             在/etc/rc.d/rc*.d目錄中建立/etc/init.d/服務的軟鏈接(*代表0~6七個運行級別之一) 
  2. chkonfig          命令行運行級別設置 
  3. ntsysv            僞圖形運行級別設置 

注意:

  1. 這三種方式主要用於以redhat爲基礎的發行版
  2. 如果還不知道運行級別是什麼,那麼最好先看看相關資料再實驗

第一種方式:ln -s 建立啓動軟連接

在Linux中有7種運行級別(可在/etc/inittab文件設置),每種運行級別分別對應着/etc/rc.d/rc[0~6].d這7個目錄:

Tips:/etc/rc[0~6].d其實是/etc/rc.d/rc[0~6].d的軟連接,主要是爲了保持和Unix的兼容性才做此策。

這7個目錄中,每個目錄分別存放着對應運行級別加載時需要關閉或啓動的服務,由詳細信息可以知道,其實每個腳本文件都對應着/etc/init.d/目錄下具體的服務。

K開頭的腳本文件代表運行級別加載時需要關閉的,S開頭的代表需要執行:

因此,當我們需要開機啓動自己的腳本時,只需要將可執行腳本丟在/etc/init.d目錄下,然後在/etc/rc.d/rc*.d中建立軟鏈接即可:

[root@localhost ~]# ln -s /etc/init.d/sshd /etc/rc.d/rc3.d/S100ssh

此處sshd是具體服務的腳本文件,S100ssh是其軟鏈接,S開頭代表加載時自啓動。

如果需要在多個運行級別下設置自啓動,則需建立多個軟鏈接,這種方式比較繁瑣,適用於自定義的服務腳本。

如果系統中已經存在某些服務(比如安裝apache時就會有httpd服務項),可以使用下面的兩種方式:

第二種方式:chkconfig

如果需要自啓動某些服務,只需使用chkconfig 服務名 on即可,若想關閉,將on改爲off。

在默認情況下,chkconfig會自啓動2345這四個級別,如果想自定義可以加上--level選項:

上面我們先將sshd服務的所有啓動級別關閉,然後使用--level選項啓動自定義級別;

Tips:--list選項可查看指定服務的啓動狀態,chkconfig不帶任何選項則查看所有服務狀態。

第三種方式:ntsysv 僞圖形

ntsysv和chkconfig其實是一樣的,只不過加上了圖形而已;

啓動ntsysv有兩種方式,一是直接在命令行中輸入ntsysv,二是使用setup命令,然後選擇系統服務:

默認情況下,當前運行級別爲多少,在ntsysv中設置的啓動服務的級別便是多少,比如,我當前的運行級別是3,那麼我在僞圖形界面中選擇啓動服務後,它的運行級別也會是3。

如果想自定義運行級別可使用ntsysv --level方式:

以上三種操作需要保證服務腳本文件可執行,並且要有root權限,其中,第一種方式多用於自定義腳本,第二、三種多用於系統已存在的服務,比如ftp、samba、ssh、httpd等等,並且,要做相關設置需要弄清楚運行級別的問題。

Tips:如果想手動啓動某服務,傳統的方式是 /etc/init.d 服務名 start。

實際上還可以這樣,service 服務名 start:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章