1. 程式人生 > >liunx設定自啟動之chkconfig命令詳解

liunx設定自啟動之chkconfig命令詳解

chkconfig命令主要用查詢/設定系統服務的執行級別  一般用來設定啟動服務

要熟悉這個命令 首先需要知道系統執行級別這個概念 liunx

系統執行級別

一共有六個執行級別(不算關機的話)  分別由數字 0-6來表示 其中0表示關機 其它各級別資訊如下:

1:單使用者模式
2:無網路連線的多使用者命令列模式
3:有網路連線的多使用者命令列模式
4:不可用
5:帶圖形介面的多使用者模式
6:重新啟動

引數說明

引數 --list 顯示所有系統服務列表(可省)  結果如下

[xxxx ~]# chkconfig --list
abrt-ccpp      	0:關閉	1:關閉	2:關閉	3:關閉	4:關閉	5:關閉	6:關閉
abrtd          	0:關閉	1:關閉	2:關閉	3:關閉	4:關閉	5:關閉	6:關閉
acpid          	0:關閉	1:關閉	2:關閉	3:關閉	4:關閉	5:關閉	6:關閉
aegis          	0:關閉	1:關閉	2:啟用	3:啟用	4:啟用	5:啟用	6:關閉
atd            	0:關閉	1:關閉	2:啟用	3:啟用	4:啟用	5:啟用	6:關閉
auditd         	0:關閉	1:關閉	2:關閉	3:關閉	4:關閉	5:關閉	6:關閉
blk-availability	0:關閉	1:啟用	2:關閉	3:關閉	4:關閉	5:關閉	6:關閉
cpuspeed       	0:關閉	1:啟用	2:關閉	3:關閉	4:關閉	5:關閉	6:關閉
crond          	0:關閉	1:關閉	2:啟用	3:啟用	4:啟用	5:啟用	6:關閉
gshelld        	0:關閉	1:關閉	2:啟用	3:啟用	4:啟用	5:啟用	6:關閉
haldaemon      	0:關閉	1:關閉	2:關閉	3:關閉	4:關閉	5:關閉	6:關閉
htcacheclean   	0:關閉	1:關閉	2:關閉	3:關閉	4:關閉	5:關閉	6:關閉
httpd          	0:關閉	1:關閉	2:關閉	3:關閉	4:關閉	5:關閉	6:關閉

檢視php-fpm服務

[xxx ~]# chkconfig --list php-fpm
php-fpm        	0:關閉	1:關閉	2:啟用	3:啟用	4:啟用	5:啟用	6:關閉

--level 設定服務的執行級別  語法形式如下 chkconfig --level  23 service off|on|reset 23即為執行級別  service為服務  off關閉 on開啟 reset重啟

例:設定php-fpm在23級別不啟動

chkconfig --level 23 php-fpm off

--add 增加一個服務  服務指令碼應位於/etc/init.d/資料夾下  語法 chkconfig --add servicename

例:增加memcached服務

vim memcached

內容如下
#! /bin/sh
#
# memcached:    MemCached Daemon   
#   
# chkconfig:    - 90 25  
# description:  MemCached Daemon   
#   
# Source function library.   
. /etc/rc.d/init.d/functions
. /etc/sysconfig/network

PORT=11211
USER=daemon
MAXCONN=1024
CACHESIZE=128
OPTIONS=""
HOST=127.0.0.1
MEMCACHED="/usr/local/memcached/bin/memcached"
PID="/var/run/memcached/memcached.pid"
start()   
{
        echo -n $"Starting memcached: "  
        daemon $MEMCACHED -u $USER -d -m $MAXCONN -l $HOST -p $PORT -P $PID
        echo   
}
stop()   
{
        echo -n $"Shutting down memcached: "  
        killproc memcached
        echo   
}
[ -f $MEMCACHED ] || exit 1
# See how we were called.   
case "$1" in
  start)

        start

        ;;
  stop)
        stop
        ;;
  restart)
        stop
        sleep 3
        start
        ;;
    *)
        echo $"Usage: $0 {start|stop|restart}"  
        exit 1
esac
exit 0

其中

# chkconfig:    - 90 25  

告訴chkconfig執行級別 啟動優先順序 停止優先順序  -代表在任何級別都不執行  90為啟動優先順序 25為停止優先順序  拷貝到/etc/init.d/目錄

cp memcached /etc/init.d/memcached

增加memcached服務

chkconfig --add memcached

新增服務後可以使用--level命令來設定執行級別


--del命令 刪除服務 語法 chkconfig --del 服務名

例:刪除剛才新增的memcache服務

chkconfig --del memcached

注意事項

1. chkconfig不會自動禁止或啟用一個服務 如上面我將memcached執行設定為 --level 2345 memcached on  如果memcached在當前級別下未啟動 那麼執行chkconfig後也不會自動啟動

2.啟動指令碼需在/etc/init./下才可以執行刪除和新增 同上理 刪除和新增服務後 該服務也不會自行啟動或者停止