通用启动脚本参数设置
- EXECON程序启动的路径
- PID进程号记录文件路径
- 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