在CentOS上编写init.d service script


背景:
之前编写了一些脚本,下载了一些开源软件,想把它们做成系统服务,通过service your_prog_name start这样的方式来后台运行,并在开机时自动启动。
在了解了daemon命令之后,我发现使用它来编写这样的脚本非常方便,相关示例如下:

具体配置:
只需要将your_prog_name替换为你真正的脚本或执行文件的名称,将prog_path设置为具体的路径即可。
# vim /etc/init.d/your_prog_name

#!/bin/bash
#
# Comments to support chkconfig
# chkconfig: - 98 02
# description: your_prog_name service script
#
# Source function library.
. /etc/init.d/functions

### Default variables
prog_name="your_prog_name"
prog_path="/usr/bin/${prog_name}"
pidfile="/var/run/${prog_name}.pid"
options="-c your_conf_file"

# Check if requirements are met
[ -x "${prog_path}" ] || exit 1

RETVAL=0

start(){
  echo -n $"Starting $prog_name: "
  daemon $prog_path $options
  RETVAL=$?
  PID=$(pidof ${prog_path})
  [ ! -z "${PID}" ] && echo ${PID} > ${pidfile}
  echo
  [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog_name
  return $RETVAL
}

stop(){
  echo -n $"Shutting down $prog_name: "
  killproc -p ${pidfile}
  RETVAL=$?
  echo
  [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog_name
  return $RETVAL
}

restart() {
  stop
  start
}

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    restart
    ;;
  status)
    status $prog_path
    RETVAL=$?
    ;;
  *)
    echo $"Usage: $0 {start|stop|restart|status}"
    RETVAL=1
esac

exit $RETVAL

# chmod +x /etc/init.d/your_prog_name
# chkconfig your_prog_name on


转自:http://ju.outofmemory.cn/entry/95057


附加service tomcat1 start例子:


#!/bin/sh
#
# chkconfig: 2345 85 21
# description: zimg startup scripts
#
tomcat="/usr/server/tomcat1"
startup="/usr/server/tomcat1/bin/startup.sh"
shutdown="/usr/server/tomcat1/bin/shutdown.sh"
export JAVA_HOME=/usr/local/jdk1.7.0
if [ -f /etc/rc.d/init.d/functions ]; then
        . /etc/rc.d/init.d/functions
fi

start() {
        cd $tomcat
        $startup
        echo "tomcat1 started."
}

stop() {

        cd $tomcat
        $shutdown
        echo "tomcat1 stopped."

}
# See how we were called.
case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    status)
        ;;
    restart)
        stop
        start
        ;;
    condrestart)
        ;;
    reload)
        ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart|reload}"
        ;;
esac
exit $RETVAL
~
~
~
~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值