建立SysV系統指令碼(可指定執行級別自動啟動)
阿新 • • 發佈:2019-02-01
/etc/rc.d/init.d /etc/init.d 服務類指令碼 sysV /etc/rc.d/init.d 必須有的選項: start stop restart status chkconfig 指令碼的前面必須有下面兩行,如果沒有 chkconfig命令檢測不到此指令碼 # chkconfig: runlevels SS KK runlevels: 當chkconfig命令來為此指令碼在rc#.d目錄建立連結時,runlevels表示預設建立為S*開頭的連結,\n除此之外的級別預設建立為K*開頭的連結;S後面的啟動優先順序為SS所表示的數字;K後面關閉優先次序為KK所表示的數字; # description: 用於簡單說明此指令碼的功能; \ 換行 chkconfig --list: 檢視所有獨立守護服務的啟動設定 chkconfig --add service_name chkconfig --del service_name chkconfig --level runlevels service_name {on|off}
測試指令碼 myservice.sh
#!/bin/bash
# chkconifg: 2345 66 33
# description: Test Service
#
LOCKFILE=/var/lock/subsys/myservice # 建立一個鎖檔案,用來判斷指令碼的狀態
mystatus(){
if [ -e LOCKFILE ]; then
echo "running..."
else
echo "stopped..."
}
usage(){
echo "`basename $0` {start|stop|restart|status}"
}
case $1 in
'start')
touch /var/lock/subsys/myservice
echo "starting..."
;;
'stop')
rm -rf /var/lock/subsys/myservice
echo "stopping..."
;;
'restart')
echo "restarting..."
;;
'status')
mystatus
;;
*)
usage
;;
esac
把指令碼加到系統指令碼的目錄中,並用chkconfig命令讓其在指定的執行級別自動啟動: cp myservice.sh /etc/rc.d/init.d/myservice chkconfig --add myservice chkconfig --list myservice # 檢視 chkconfig --level 24 myservice off 關閉myservice在24級別上自動啟動