2分钟-实现开机nginx开机自启动脚本(shell篇)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2分钟-实现开机nginx开机自启动脚本(shell篇)相关的知识,希望对你有一定的参考价值。

如何快速写个启动脚本,主要通过如下几部

1,逻辑捋顺

  • 可以在txt文件中,已伪代码的方式,形成体系,罗列顺序,然后在一点点补充代码

  • 通过PID 进程文件,判断程序是否运行

  • 设置3个模块(开启,关闭,重新加载)

  • 然后在用case语句 去调用这个3个模块 实现启动脚本功能

  • restart看进程号变化,reload看配置文件是否生效

2,脚本主体内容

[[email protected]]# cat /etc/init.d/nginx
#!/bin/bash
# chkconfig: 2345 32 62  #按照开机启动模板设定,32序列号 62系统等级
# description: Activates/Deactivates all network interfaces configured to  
[ -f /etc/init.d/functions ] &&  . /etc/init.d/functions  #引用系统函数库
nginx=/application/nginx/sbin/nginx
Pidfile=/application/nginx/logs/nginx.pid
oldboy(){
    RETVAL=$?
    if [ $RETVAL -eq 0 ];then
      action "Nginx is $1" /bin/true
    else
      action "Nginx is $1" /bin/false
    fi
}
##no.1 定义启动模块
Start(){
  if [ -f $Pidfile ];then
    echo "Nginx is running"
   else
    $nginx
    oldboy started
  fi   
  return $RETVAL
}
##no.2 定义关闭模块
Stop(){
  if [ ! -f $Pidfile ];then
    echo "nginx in not running"
    else
    $nginx -s stop
    oldboy stoped
  fi
}
##no.3 定义重新加载模块
Reload(){
  if [ ! -f $Pidfile ];then
    echo "Cat‘t open $Pidfile ,no such file or directory"
  else
    $nginx -s reload
    oldboy reloaed 
  fi
}
 
case "$1" in
    start)
    Start
;;
    stop)
    Stop
;;
    reload)
    Reload
;;
    restart)
    Stop
    sleep 2
    Start
;;
    *)
    echo "Usage: sh $0 {start|stop|reload|restart} "   
    exit 1
esac
exit   $RETVAL

3,把脚本放到/etc/init.d/ 下

 3.1  查看服务自启动列表

[[email protected] init.d]# chkconfig --list|grep nginx
[[email protected] init.d]# chkconfig --list|grep mysql
mysqld         0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭

 3.2 把脚本写入到/etc/init.d

[[email protected] init.d]# cd /etc/init.d/
[[email protected] init.d]# vi nginx   #内容见上面脚本

  3.3 授权脚本 x执行权限

[[email protected] init.d]# chmod +x nginx 
[[email protected] init.d]# ll nginx 
-rwxr-xr-x 1 root root 1177 9月  26 15:45 nginx


4,添加开机自启动

[[email protected] init.d]# chkconfig nginx on
service nginx does not support chkconfig   ##报错,没有把nginx文件,添加到开机自启动里面
[[email protected] rc3.d]# chkconfig --list|grep nginx
nginx          	0:关闭	1:关闭	2:启用	3:启用	4:启用	5:启用	6:关闭

4.1测试

[[email protected] rc3.d]# /etc/init.d/nginx start
Nginx is running

另外一种,开机自启动方法,可以把启动内容放到 /etc/rc.local文件中,主要要使用绝对路径


技术分享

本文出自 “逗哥笔记” 博客,请务必保留此出处http://qiuyt.blog.51cto.com/1229789/1968880

以上是关于2分钟-实现开机nginx开机自启动脚本(shell篇)的主要内容,如果未能解决你的问题,请参考以下文章

nginx启动脚本编写及设置开机自启动

配置nginx脚本开机自启动

Linux开机自启应用&开机执行脚本&监听端口应用挂掉了执行启动脚本

CentOS7 设置开机自启动脚本

nginx设置开机自启动

nginx 设置开机自动启动脚本