• 在 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

  • 相关阅读:
    多播委托与事件
    Linq 查询的演变过程
    Lamda表达式的前世今生
    微服务架构学习
    委托IL解析-----封装逻辑和代码复用
    ORM框架学习(四)
    ORM框架学习(三)
    Visual Studio 2010 旗舰版安装图解
    Microsoft SQL Server 2008 R2 中文安装说明
    3.0 面向对象 委托和事件 异常和错误
  • 原文地址:https://www.cnblogs.com/Mrhuangrui/p/4556440.html
Copyright © 2020-2023  润新知