Latest News

Home » Linux主機伺服器 » 7個Linux chkconfig指令案例

7個Linux chkconfig指令案例


    1、用Shell腳本檢驗服務系統啟動項狀態
    2、檢視現用的服務系統啟動項的狀態
    3、加入一個新服務到啟動項
    4、從系統啟動項清單刪除一個服務
    5、為服務開啟或關閉選取的運行級
    6、rc.d子目錄下的腳本檔案
    7、加入操作使rcx.d目錄的變化


Chkconfig指令用來設定,檢視或變更配置開機自動啟動的服務。下面根據七個實用的案例來說明Chkconfig指令的使用方法。
1、用Shell腳本檢驗服務系統啟動項狀態

當你只用服務名執行chkconfig指令時,如果該服務已經配置到系統啟動項即返回真。下面的代碼段是用來檢查一個服務是否已經配置開機啟動。

    # vi check.sh
    chkconfig network && echo "Network service is configured"
    chkconfig junk && echo "Junk service is configured"
     
    # ./check.sh
    Network service is configured

你也可以指定檢查該服務是否配置到特殊的運行級。

    # vi check1.sh
    chkconfig network –level 3 && echo "Network service is configured for level 3"
    chkconfig network –level 1 && echo "Network service is configured for level 1"
     
    # ./check1.sh
    Network service is configured for level 3

2、檢視現用的服務系統啟動項的狀態

–list選項用來顯示現用的所有服務的系統啟動項狀態。

    # chkconfig –list
    abrtd   0:off   1:off   2:off   3:on    4:off   5:on    6:off
    acpid   0:off   1:off   2:off   3:off   4:off   5:off   6:off
    atd     0:off   1:off   2:off   3:on    4:on    5:on    6:off
    …

可以使用grep過濾顯示指定條件的服務。
下面的指令表示只顯示運行級為3的服務。

    chkconfig –list | grep 3:on

下面的指令表示只顯示network服務的啟動項狀態。

    chkconfig –list | grep network

3、加入一個新服務到啟動項

使用–add選項來加入一個指定服務到系統啟動服務清單。
下面的例子說明如何加入一個新服務(如iptables)到需要開機啟動的服務清單。「chkconfig –add」指令也會自動地開啟運行級2,3,4和5,如下:

    # chkconfig –list | grep iptables
    # chkconfig –add iptables
    # chkconfig –list | grep iptables
    iptables       0:off   1:off   2:on    3:on    4:on    5:on    6:off

4、從系統啟動項清單刪除一個服務

下面的例子顯示ip6tables已經配置到啟動項。

    # chkconfig –list | grep ip6tables
    ip6tables       0:off   1:off   2:off   3:on   4:off   5:off   6:off

使用–del選項從啟動清單刪除它。

    # chkconfig –del ip6tables
    # chkconfig –list | grep ip6tables

5、為服務開啟或關閉選取的運行級

有時候你可能不想從啟動清單中刪除整個服務,然而你可能僅僅想關閉特殊的運行級。
下面的例子是為nfserver服務關閉運行級5.

    # chkconfig –level 5 nfsserver off

你也可以同時關閉多個運行級,下面是關閉3和5運行級。

    # chkconfig –level 35 nfsserver off

6、rc.d子目錄下的腳本檔案

無論你什麼時候使用chkconfig指令加入或刪除一個服務,它都會在/etc/rc.d子目錄執行某些動作。

    當chkconfig –add指令被執行,它會在對應的rc目錄建立一個符合連結檔案來啟動和停止服務。
    當chkconfig –del指令被執行,它會在對應的rc目錄刪除相應的符號連結。

下面的例子顯示xinetd服務已經開啟運行級3和5,所以xinetd會有兩個檔案在rc3.d目錄和兩個檔案在rc5.d目錄。以K開頭的檔案關機的時候用(K表示kill)。以S開頭的檔案開機的時候用(S表示start)。

    # chkconfig –list | grep xinetd
    xinetd                    0:off  1:off  2:off  3:on   4:off  5:on   6:off
    xinetd based services:
     
    # cd /etc/rc.d/rc3.d
    # ls | grep xinetd
    K08xinetd
    S14xinetd
     
    # cd /etc/rc.d/rc5.d
     
    # ls | grep xinetd
    K08xinetd
    S14xinetd

7、加入操作使rcx.d目錄的變化

當你通過chkconfig指令加入一個新服務,預設的運行級會自動地為該服務開啟,並且會在對應的rcx目錄建立檔案。
例如,如果nfsserver服務沒有在啟動項清單中,那nfsserver服務就沒有檔案在/etc/rc.d/rc*.d目錄下。

    # chkconfig  –list | grep nfsserver
    nfsserver                 0:off  1:off  2:off  3:off  4:off  5:off  6:off
    # ls /etc/rc.d/rc3.d | grep nfsserver
    # ls /etc/rc.d/rc5.d | grep nfsserver

當你加入nfsserver服務之後,你將會在這些目錄下看到符號連結。

    # chkconfig –add nfsserver
    nfsserver                 0:off  1:off  2:off  3:on   4:off  5:on   6:off
     
    # cd  /etc/rc.d/rc3.d
    # ls -l | grep nfsserver
    lrwxrwxrwx 1 root root 12 2019-03-18 00:52 K08nfsserver -> ../nfsserver
    lrwxrwxrwx 1 root root 12 2019-03-18 00:52 S14nfsserver -> ../nfsserver
     
    # cd /etc/rc.d/rc5.d
    # ls -l | grep nfsserver
    lrwxrwxrwx 1 root root 12 2019-03-18 00:52 K08nfsserver -> ../nfsserver
    lrwxrwxrwx 1 root root 12 2019-03-18 00:52 S14nfsserver -> ../nfsserver

當你使用–del或–level選項來關閉服務,在rcx.d目錄下對應的符號連結檔案將會被刪除。

    # chkconfig –level 5 nfsserver off
    # ls /etc/rc.d/rc5.d  | grep nfsserver

About

發佈留言