编写启动脚本

以前写的启动脚本都没有颜色,研究了下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