/etc/init.d 目录,我们把shell脚本放在这个目录下来作为启动脚本
都是用来放服务脚本的,当Linux启动时,会寻找这些目录中的服务脚本,并根据脚本的run level确定不同的启动级别。
在制作服务脚本的过程中,使用了Linux的两个版本,CentOS和Ubuntu,需要在两个版本中都可以开机启动服务。但Ubuntu没有 /etc/rc.d/init.d这个目录,所以,为了保持同一种服务在CentOS和Ubuntu使用的统一性,将服务脚本(注:服务脚本在两个不同版本中是不同的)都放在 /etc/init.d 目录下,最终达到的效果是相同的。
编写一个自定义开机启动模版,开机自动启动nginx服务(根据进程是否存在来判断)
编写一个 nginx 文件 存放在 /etc/init.d 目录下
#!/bin/bash
#chkconfig:2345 80 05 --指定在哪几个级别执行,0一般指关机,6指的是重启,其他为正常启动。80为启动的优先级,05为关闭的优先级别
RETVAL=0
PROCESS=/usr/local/nginx-1.8.0/sbin/nginx #启动进程的命令
NAME=nginx #进程名称
start(){ #启动服务的入口函数
ID=`ps -ef | grep "$NAME" | grep -v "grep" | awk '{print $2}'` #获取进程 端口
if [ ! $ID ]; then #判断进程是否 启动
echo "start $NAME ... "
$PROCESS #如果没有启动 则启动
echo "start $NAME service sucess !!!"
else
echo "$NAME is running..."
fi
}
stop(){ #关闭服务的入口函数
ID=`ps -ef | grep "nginx" | grep -v "grep" | awk '{print $2}'`
for i in $ID #循环
do
echo "$NAME Kill the $1 process [ $i ]"
kill -9 $i #杀死进程
done
echo "stop $NAME service sucess !!!"
}
#使用case选择
case $1 in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo "error choice ! please input start or stop";;
esac
exit $RETVA
然后就 添加nginx到service服务
#修改权限
chmod 755 /etc/init.d/nginx
#添加 nginx服务
chkconfig --add nginx
#添加开机自动启动服务
chkconfig nginx on
#以下就可以允许这些服务
service nginx start
service nginx stop
service nginx reload
一个简单的 开机启动服务就完成了,这个模版供大家参考
谢谢