Linux中的chkconfig命令用於檢查,設置系統的各種服務。 謹記chkconfig不是立即自動禁止或激活一個服務,它只是簡單的改變了符號連接。
chkconfig命令原理:當執行chkconfig --add myservice 時,/etc/rc#.d目錄下【此目錄是各個啟動級別的執行程序連接目錄,裡面的都是指向init.d/的一些軟連接。】創建該文件S67*的軟連接,22是S*的軟鏈接,當系統在級別切換如啟動或者關閉時就會執行S開頭或者K開頭的腳本。
chkconfig在沒有參數運行時,會默認顯示所有服務:
如果加上服務名,那麼就檢查這個服務是否在當前運行級啟動。如果是,返回true,否則返回false。如果在服務名後面指定了on,off或者reset,那麼chkconfi 會改變指定服務的啟動信息。on和off分別指服務被啟動和停止,reset指重置服務的啟動信息,無論有問題的初始化腳本指定了什麼。on和off開關,系統默認只對運行級3,4,5有效,但是reset可以對所有運行級有效。
chkconfig命令參數用法:
- --add 增加所指定的系統服務,讓chkconfig指令得以管理它,並同時在系統啟動的敘述文件內增加相關數據。
- --del 刪除所指定的系統服務,不再由chkconfig指令管理,並同時在系統啟動的敘述文件內刪除相關數據。
- --level 指定該系統服務要在哪一個執行等級中開啟或關畢。
等級代號列表:
- 等級0表示:表示關機
- 等級1表示:單用戶模式
- 等級2表示:無網絡連接的多用戶命令行模式
- 等級3表示:有網絡連接的多用戶命令行模式
- 等級4表示:不可用
- 等級5表示:帶圖形界面的多用戶模式
- 等級6表示:重新啟動
每個被chkconfig 管理的服務需要在對應的/etc/rc.d/init.d 下的腳本加上兩行或者更多行的註釋。
第一行告訴 chkconfig 缺省啟動的運行級以及啟動和停止的優先級。如果某服務缺省不在任何運行級啟動,那麼使用 – 代替運行級。
第二行對服務進行描述,可以用\ 跨行註釋。
例如,mysqld.init 包含的代碼:
<code>表明
mysqld
腳本應該在運行級
3
,
4
,
5
啟動,啟動優先權為64,停止優先權為
36
。
/<code>
chkconfig實例:
<code>chkconfig --list chkconfig --add
mysqld chkconfig --del mysqld chkconfig --level mysqld234
on
chkconfig --list mysqld chkconfig --level35
mysqldon
chkconfig mysqldon
/<code>
拓展知識 -- 增加一個服務
1、我們編寫一個服務腳本haoCodingService:
<code> . /etc/rc.d/init.d/functions
usage
() {echo
" usage:
$0
{start|stop|restart} " }start
() {echo
"haoCoding Service Started!"
}stop
() {echo
"haoCoding Service Stopped!"
}restart
() { stop start }case
$1
in
start) start ;; stop) stop ;; restart) restart ;; *) usage ;;esac
/<code>
2、將腳本存放在/etc/ini.d/目錄下:
3、在chkconfig工具服務列表中增加此服務,此時服務會被在/etc/rc.d/rcN.d中賦予K/S入口了。
<code>chkconfig --add
haoCodingService/<code>
4、修改服務的默認啟動等級:
<code>chkconfig
--level345
haoCodingServiceon
/<code>
參考文章:
- Linux下chkconfig命令詳解
https://www.cnblogs.com/jining/p/chkconfig.html
- Linux chkconfig命令
https://www.cnblogs.com/jining/p/chkconfig.html
關鍵字: Linux 服務 haoCodingService