Linux服务与chkconfig
chkconfig使用說明
chkconfig是管理系統(tǒng)服務(wù)(service)的命令行工具。所謂系統(tǒng)服務(wù)(service),就是隨系統(tǒng)啟動(dòng)而啟動(dòng),隨系統(tǒng)關(guān)閉而關(guān)閉的程序。
chkconfig可以更新(啟動(dòng)或停止)和查詢系統(tǒng)服務(wù)(service)運(yùn)行級(jí)信息。更簡單一點(diǎn),chkconfig是一個(gè)用于維護(hù)/etc/rc[0-6].d目錄的命令行工具。
chkconfig 提供5個(gè)功能:
1. 設(shè)置service啟動(dòng)信息
# chkconfig name on/off/reseton、off、reset用于改變service的啟動(dòng)信息。?
on表示開啟,off表示關(guān)閉,reset表示重置。?
默認(rèn)情況下,on和off開關(guān)只對(duì)運(yùn)行級(jí)2,3,4,5有效,reset可以對(duì)所有運(yùn)行級(jí)有效。?例如,
2. 設(shè)置service運(yùn)行級(jí)別
# chkconfig --level levels例如,
# chkconfig --level 2345 httpd on指定運(yùn)行級(jí)為2,3,4,5?
等級(jí)0表示:表示關(guān)機(jī)?
等級(jí)1表示:單用戶模式?
等級(jí)2表示:無網(wǎng)絡(luò)連接的多用戶命令行模式?
等級(jí)3表示:有網(wǎng)絡(luò)連接的多用戶命令行模式?
等級(jí)4表示:不可用?
等級(jí)5表示:帶圖形界面的多用戶模式?
等級(jí)6表示:重新啟動(dòng)
3. 添加service
# chkconfig --add name添加一個(gè)chkconfig管理的service,并在/etc/rc[0-6].d 目錄下添加相應(yīng)的符號(hào)鏈接(symbolic links)。
4. 移除service
# chkconfig --del name從chkconfig 管理名單中刪除該service,并且刪除 /etc/rc[0-6].d 目錄下所有與之關(guān)聯(lián)的符號(hào)鏈接(symbolic links)。
5. 列出service的啟動(dòng)信息
# chkconfig --list [name]如果不指定name,會(huì)列出所有services的信息。
每個(gè)service每個(gè)運(yùn)行級(jí)別都會(huì)有一個(gè)啟動(dòng)和停止腳本;當(dāng)切換運(yùn)行級(jí)別時(shí),init不會(huì)重啟已經(jīng)啟動(dòng)的service,也不會(huì)重新停止已經(jīng)停止的service。
下面舉例說明
(1).列出所有服務(wù)的啟動(dòng)情況
$ chkconfig --list auditd ? ? ? ? ?0:off ? 1:off ? 2:on ? ?3:on ? ?4:on ? ?5:on ? ?6:off redis ? ? ? ? ? 0:off ? 1:off ? 2:off ? 3:off ? 4:off ? 5:off ? 6:off restorecond ? ? 0:off ? 1:off ? 2:off ? 3:off ? 4:off ? 5:off ? 6:off rpcbind ? ? ? ? 0:off ? 1:off ? 2:on ? ?3:on ? ?4:on ? ?5:on ? ?6:off rpcgssd ? ? ? ? 0:off ? 1:off ? 2:off ? 3:on ? ?4:on ? ?5:on ? ?6:off rpcsvcgssd ? ? ?0:off ? 1:off ? 2:off ? 3:off ? 4:off ? 5:off ? 6:off rsyslog ? ? ? ? 0:off ? 1:off ? 2:on ? ?3:on ? ?4:on ? ?5:on ? ?6:off saslauthd ? ? ? 0:off ? 1:off ? 2:off ? 3:off ? 4:off ? 5:off ? 6:off smb ? ? ? ? ? ? 0:off ? 1:off ? 2:off ? 3:on ? ?4:off ? 5:on ? ?6:off 。。。 xinetd based services:rsync: ? ? ? ? ?offswat: ? ? ? ? ? off(2)增加mysqld服務(wù)
$ chkconfig --add mysqld(3)刪除mysqld服務(wù)
$ chkconfig --del mysqld(4)設(shè)置mysqld運(yùn)行級(jí)別為2,3,4,5
$ chkconfig --level 2345 httpd on(5)列出mysqld 服務(wù)啟動(dòng)信息情況
$ chkconfig --list mysqld mysqld ? ? ? ? ?0:off ? 1:off ? 2:on ? ?3:on ? ?4:on ? ?5:on ? ?6:off(6)設(shè)置啟動(dòng)信息
$ chkconfig mysqld on默認(rèn)的運(yùn)行級(jí)別為2,3,4,5?
實(shí)際上,與4中命令作用是一樣的。
?
====================================================
添加linux服務(wù)
所謂系統(tǒng)服務(wù)(service),就是隨系統(tǒng)啟動(dòng)而啟動(dòng),隨系統(tǒng)關(guān)閉而關(guān)閉的程序。更通俗的講,就是進(jìn)程的開機(jī)啟動(dòng)。?
本文主要介紹如何添加一個(gè)service。
1. 開發(fā)一個(gè)程序
首先開發(fā)一個(gè)軟件,使其成為service。代碼如下:
init_daemon()完成進(jìn)程的精靈化過程,包括脫離終端轉(zhuǎn)入后臺(tái)等。
編譯
# gcc capsule.c –o capsule將可執(zhí)行文件拷貝到/usr/local/sbin目錄下
# cp capsule /usr/local/sbin/2.編寫service腳本
service一般通過chkconfig工具進(jìn)行管理。chkconfig管理的每個(gè)service需要在其init.d腳本中添加兩行或更多注釋行。?
第一行告訴chkconfig 該service運(yùn)行的默認(rèn)級(jí)別,以及啟動(dòng)和停止的優(yōu)先權(quán)。如果該service不在任何運(yùn)行級(jí)啟動(dòng),可以設(shè)置為”-“。?
第二行包含描述信息。
針對(duì)剛才的可執(zhí)行文件,編寫service腳本capsuled如下:
#!/bin/bash # # capsuled ? ?A test service program # # chkconfig: - 92 12 # description: A test service prog # # @name: capsuled # @author: lanyang # @created: 2017.01.23 # # Source function library. . /etc/init.d/functionsPROG=capsuled RETVAL=0 FULL_PATH=/usr/local/sbin/capsulestart() {echo -n $"Starting $PROG ..."daemon $FULL_PATHRETVAL=$?echo }stop() {echo -n $"Stopping $PROG ..."killproc $FULL_PATHRETVAL=$?echo }case "$1" instart)start;;stop)stop;;restart)stopsleep 5startRETVAL=$?;;status)status $FULL_PATHRETVAL=$?;;*)echo $“Usage: $0 {start|stop|restart|status}”exit 1esacexit $RETVAL3.在/etc/init.d/目錄下添加service腳本
# cp capsuled /etc/init.d # chmod a+x capsuled4.添加service,使chkconfig命令可以管理該service
# chkconfig --add capsuled5.設(shè)置service啟動(dòng)運(yùn)行級(jí)別
# chkconfig --level 2345 capsuled on查看啟動(dòng)信息
# chkconfig --list capsuled capsuled ? ? ? ?0:off ? 1:off ? 2:on ? ?3:on ? ?4:on ? ?5:on ? ?6:off6.啟動(dòng)service
?
# service capsuled start Starting capsuled ... ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[ ?OK ?] # ps -ef | grep capsule root ? ? ?17729 ? ? ?1 ?0 18:31 ? ? ? ? ?00:00:00 /usr/local/sbin/capsule# service capsuled status capsule (pid 17729) is running...# service capsuled stop Stopping capsuled ... ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[ ?OK ?]7.小結(jié)
# service ?capsuled start與
# /etc/init.d/capsuled start作用是一樣的。實(shí)際上,前者是通過調(diào)用后者實(shí)現(xiàn)的。
管理service使用的chkconfig是一個(gè)用于維護(hù)/etc/rc[0-6].d目錄的命令行工具。其中,[0-6]指的是系統(tǒng)的7個(gè)運(yùn)行級(jí)別。?
/etc/rc[0-6].d目錄,內(nèi)容全部是鏈接(symbolic links),一般鏈接到/etc/init.d/目錄下的某個(gè)service腳本文件。?
例如,
其中,85是啟動(dòng)優(yōu)先級(jí);
$ ll /etc/rc6.d/K15httpd? lrwxrwxrwx. 1 root root 15 Jul 30 ?2015 /etc/rc6.d/K15httpd -> ../init.d/httpd其中,15是停止優(yōu)先級(jí)。?
類似的,
92是啟動(dòng)優(yōu)先級(jí)
# ll /etc/rc6.d/ | grep capsuled lrwxrwxrwx. 1 root root 18 Jan 23 17:52 K12capsuled -> ../init.d/capsuled12是停止優(yōu)先級(jí)
新人創(chuàng)作打卡挑戰(zhàn)賽發(fā)博客就能抽獎(jiǎng)!定制產(chǎn)品紅包拿不停!總結(jié)
以上是生活随笔為你收集整理的Linux服务与chkconfig的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 设计模式:外观模式(C++)【颜值很重要
- 下一篇: 使用Xshell连接Ubuntu详解