編寫啟動腳本
以前寫的啟動腳本都沒有顏色,研究了下functions ,functions 是個很好的啟動腳本接口文件,最重要的是daemon和killproc2個函數。
於是自己跟著寫了nginx的
#!/bin/bash
#chkconfig:35 23 34
#description: nginx webserver
#set -x
if [ -f /etc/init.d/functions ] ; then
. /etc/init.d/functions ##載入functions,. 在這裡相當於source的功能
fi
prog=nginx ##服務名,會多處調用
RETVAL=0 ##狀態返回值,functions 函數會調用這個值
nginx=/usr/local/nginx/sbin/nginx
NGINX_CONF_FILE=/usr/local/nginx/conf/nginx.conf
pidfile=/usr/local/nginx/logs/nginx.pid
lockfile=/var/lock/subsys/${prog} ##subsys目錄下的文件是用於給其他程序判斷服務的實例運行狀態的
start() {
echo -n $"Starting $prog: "
daemon $nginx -c $NGINX_CONF_FILE ###daemon調用後面的命令執行情況
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch ${lockfile}
return $RETVAL
}
stop () {
echo -n $"Stopping $prog: "
killproc -p ${pidfile} ###killproc 從pidfile 獲取到pid,並殺死
#RETVAL=$?
echo
[ $RETVAL -eq 0 ] && /bin/rm -f ${lockfile}
return $RETVAL
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
esac