首頁 > 軟體

Linux下chkconfig的使用

2020-06-16 17:21:46

在Linux的系統下我們平時使用的服務進程可以通過一些指令碼啟動,而很多自定義的服務啟動指令碼可以通過chkconfig命令來實現,chkconfig命令是用來檢查、設定系統的各種服務。這是Red Hat公司遵循GPL(GNU通用公共許可證)規則所開發的程式,它可查詢作業系統在每一個執行等級中會執行哪些系統服務,其中包括各類常駐服務。要謹記chkconfig不是立即自動禁止或啟用一個服務,它只是簡單的改變了符號連線,使我們可以通過service servicename {start|stop|restart|condrestart|status|panic|save}這些控制服務。通過man幫助得到以下選項和引數資訊

--list:檢視指定服務的所有執行級別下開啟和關閉情況;
--add:增加所指定的系統服務,讓chkconfig指令得以管理它,並同時在系統啟動的敘述檔案內增加相關資料;
--del:刪除所指定的系統服務,不再由chkconfig指令管理,並同時在系統啟動的敘述檔案內刪除相關資料;
--level<等級代號>:指定讀系統服務要在哪一個執行等級中開啟或關畢。
 
其中的代號等級列表如下:
 
    等級0表示:表示關機
    等級1表示:單使用者模式
    等級2表示:無網路連線的多使用者命令列模式
    等級3表示:有網路連線的多使用者命令列模式
    等級4表示:不可用
    等級5表示:帶圖形介面的多使用者模式
    等級6表示:重新啟動

在這裡要注意的是,level選項可以指定要檢視的執行級而不一定是當前執行級。對於每個執行級,只能有一個啟動指令碼或者停止指令碼。當切換執行級時,init不會重新啟動已經啟動的服務,也不會再次去停止已經停止的服務。

而在我們被chkconfig管理的服務需要在對應的init.d下的指令碼加上兩行或者更多行的注釋。第一行告訴chkconfig預設啟動的執行級以及啟動和停止的優先順序。如果某服務預設不在任何執行級啟動,那麼使用-代替執行級。第二行對服務進行描述,可以用跨行注釋。

例如network服務就有幾行:

#! /bin/bash
#
# network      Bring up/down networking
#
# chkconfig: 2345 10 90
# description: Activates/Deactivates all network interfaces configured to
#              start at boot time.
#
### BEGIN INIT INFO
# Provides: $network
### END INIT INFO

所以在被chkconfig管理的服務要寫好這些註釋內容,還有在增加一個服務的時候要注意兩點:

    1、服務指令碼必須存放在/etc/init.d/目錄下

    2、chkconfig --add 在chkconfig工具服務列表中增加此服務,此時服務會被在/etc/rc.d/rcN.d中賦予K/S入口了;

本文永久更新連結地址http://www.linuxidc.com/Linux/2017-02/140440.htm


IT145.com E-mail:sddin#qq.com