zoukankan      html  css  js  c++  java
  • 在 CentOS 上编写 init.d service script [转]

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

    具体配置:
    只需要将 your_prog_name 替换为你真正的脚本或执行文件的名称,将 prog_path 设置为具体的路径,以及其它的部分参数如执行用户 prog_user,以及 proc_conf 与 options 等即可。
    # vim /etc/init.d/your_prog_name

    #!/bin/bash
    #
    # chkconfig: - 98 02
    # description: Starts and stops the your_prog_name daemon.
    
    . /etc/init.d/functions
    
    prog_name="your_prog_name"
    prog_path="/path/to/${prog_name}"
    prog_user="your_prog_user"
    prog_conf="/path/to/your_prog_conf"
    pidfile="/path/to/${prog_name}.pid"
    options="-c ${prog_conf}"
    
    lockfile="/var/lock/subsys/${prog_name}"
    
    [ -x "${prog_path}" ] || exit 1
    [ -r "${prog_conf}" ] || exit 1
    
    start(){
      echo -n $"Starting ${prog_name}: "
      daemon --user ${prog_user} ${prog_path} ${options}
      retval=$?
      prog_pid=$(pidof ${prog_path})
      [ ! -z "${prog_pid}" ] && echo ${prog_pid} > ${pidfile}
      echo
      [ $retval -eq 0 ] && touch ${lockfile}
      return $retval
    }
    
    stop(){
      echo -n $"Stopping ${prog_name}: "
      killproc -p ${pidfile} ${prog_name}
      retval=$?
      echo
      [ $retval -eq 0 ] && rm -f ${lockfile}
      return $retval
    }
    
    case "$1" in
      start)
        start
        ;;
      stop)
        stop
        ;;
      restart)
        stop
        sleep 1
        start
        ;;
      status)
        status -p ${pidfile} ${prog_name}
        ;;
      *)
        echo $"Usage: $0 {start|stop|restart|status}"
        exit 2
    esac
    exit $?
    Script

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

    转自于:http://heylinux.com/archives/3364.html

  • 相关阅读:
    Android众说纷纭分辨率
    Android初识Helloworld
    Android从零开始
    PHP使用APC获取上传文件进度
    央行mlf,SLF,PSL,MLF,SLO
    python的lxml解析器
    美国风投行业50年数据揭示的10条VC投资秘密法则
    osx的10款文本编辑器
    nano命令,vi ed pico sed joe emacs jed ex
    修改centos7/osx的MAC地址
  • 原文地址:https://www.cnblogs.com/Mrhuangrui/p/4556440.html
Copyright © 2011-2022 走看看