/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
一个简单的 开机启动服务就完成了,这个模版供大家参考
谢谢