Xinu

Linux下通用service服务shell脚本
通用启动脚本参数设置EXECON程序启动的路径PID进程号记录文件路径service_name服务名称设置完成后保...
扫描右侧二维码阅读全文
19
2019/05

Linux下通用service服务shell脚本

通用启动脚本参数设置

  1. EXECON程序启动的路径
  2. PID进程号记录文件路径
  3. service_name服务名称

设置完成后保存在/etc/init.d目录下
授权chmod +x 文件名
service 文件名 (start stop restart status)

注意事项:# chkconfig: 58 74 这条是不能删除的,不然会报错:"service php-fpmd does not support chkconfig"
chkconfig 文件名 --add 设置开机启动就设置不了了。

# chkconfig:  58 74 (58是启动优先级,74是停止优先级,优先级范围是0-100,数字越大,优先级越低)
# chkconfig 文件名 --add              //设置开机启动
# chkconfig  --list         //查看service里设置列表

脚本内容如下

#!/bin/bash
#-1------------配置
# 主程序脚本存放路径及脚本名称(这里的把主程序功能代码EXCON写进这个启动脚本了)
EXECON="/usr/local/nginx/sbin/nginx"
# 进程PID记录文件位置及名称
PID="/var/run/nginx.pid"
[ ! -f $PID ] && : > $PID
# 服务名称(提示信息服务名称,可以中英文)
service_name="nginx"

###############
# SysV Init Information
# chkconfig: - 58 74
### BEGIN INIT INFO
# Required-Start: $network $local_fs $remote_fs
# Required-Stop: $network $local_fs $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6

#-3--------------启动和关闭
server_id=`cat $PID`

case "$1" in
    start)
        [[ -n $server_id ]] && echo "(server_id=$server_id) $service_name is runing..." && exit
        $EXECON &
        pid=$!
        echo $((pid+1)) > $PID
        echo "serverd to start successfully!"
        ;;
    stop)
        [[ ! -n $server_id ]] && echo -e "$service_name is not startd... \nYou can start it with start or restart..." && exit
        kill $server_id &> /dev/null
        : > $PID
        echo "serverd shut down successfully!"
        ;;
    status)
        if [[ -n $server_id ]];then
            echo "(server_id=$server_id) $service_name is runing..."
        else
            echo -e "$service_name is not startd... \nYou can start it with start or restart..."
        fi
        ;;
    restart)
        $0 stop
        $0 start
        ;;
    *)
        echo "Please use start, stop, restart or status as first argument"
        ;;
esac
Last modification:May 19th, 2019 at 10:16 am

Leave a Comment