萬盛學電腦網

 萬盛學電腦網 >> 服務器教程 >> Linux系統下chkconfig命令使用詳解

Linux系統下chkconfig命令使用詳解

   chkconfig命令可以用來檢查、設置系統的各種服務

  使用語法:

  chkconfig [--add][--del][--list][系統服務] 或 chkconfig [--level <等級代號>][系統服務][on/off/reset]

  參數用法:

  --addà增加所指定的系統服務,讓chkconfig指令得以管理它,並同時在系統啟動的敘述文件內增加相關數據。

  --delà刪除所指定的系統服務,不再由chkconfig指令管理,並同時在系統啟動的敘述文件內刪除相關數據。

  --level<等級代號>à指定讀系統服務要在哪一個執行等級中開啟或關畢。

  使用范例:

  chkconfig --list 列出所有的系統服務

  chkconfig --add httpd 增加httpd服務

  chkconfig --del httpd 刪除httpd服務

  chkconfig --level httpd 2345 on 把httpd在運行級別為2、3、4、5的情況下都是on(開啟)的狀態。

  chkconfig命令提供了一種簡單的方式來設置一個服務的運行級別。例如,為了設置MySQL服務器在運行級別3和4上運行,你必須首先將MySQL添加為受chkconfig管理的服務:

  復制代碼

  代碼如下:

  chkconfig --add mysql

  現在,我們在級別3和5上設定服務為“on”

  代碼如下:

  chkconfig --level 35 mysql on

  在其他級別上設為off

  代碼如下:

  chkconfig --level 01246 mysql off

  為了確認你的配置被正確的修改了,我們可以列出服務將會運行的運行級別,如下所示:

  代碼如下:

  #chkconfig --list mysql

  mysql 0:off 1:off 2:off 3:on 4:off 5:on 6:off

  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 2011-06-18 00:52 K08nfsserver -> ../nfsserver

  lrwxrwxrwx 1 root root 12 2011-06-18 00:52 S14nfsserver -> ../nfsserver

  復制代碼

  代碼如下:

  # cd /etc/rc.d/rc5.d

  # ls -l | grep nfsserver

  lrwxrwxrwx 1 root root 12 2011-06-18 00:52 K08nfsserver -> ../nfsserver

  lrwxrwxrwx 1 root root 12 2011-06-18 00:52 S14nfsserver -> ../nfsserver

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

  復制代碼

  代碼如下:

  # chkconfig --level 5 nfsserver off

  # ls /etc/rc.d/rc5.d | grep nfsserver

copyright © 萬盛學電腦網 all rights reserved