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

  • 相关阅读:
    LeetCode 326. Power of Three
    LeetCode 324. Wiggle Sort II
    LeetCode 322. Coin Change
    LeetCode 321. Create Maximum Number
    LeetCode 319. Bulb Switcher
    LeetCode 318. Maximum Product of Word Lengths
    LeetCode 310. Minimum Height Trees (DFS)
    个人站点大开发!--起始篇
    LeetCode 313. Super Ugly Number
    LeetCode 309. Best Time to Buy and Sell Stock with Cooldown (DP)
  • 原文地址:https://www.cnblogs.com/Mrhuangrui/p/4556440.html
Copyright © 2011-2022 走看看