开发nginx启动脚本及开机自启管理(case)
往往我们在工作中需要自行写一些脚本来管理服务,一旦服务异常或宕机等问题,脚本无法自行管理,当然我们可以写定时任务或将需要管理的脚本加入自启等方法来避免这种尴尬的事情,case适用与写启动脚本,下面给大家带来一个开机自启管理nginx服务,写的不好,望各位大佬指点评价...
已知nginx常用管理命令为:
启动:/application/nginx/sbin/nginx
停止:/application/nginx/sbin/nginx –s stop
重启:/application/nginx/sbin/nginx –s reload
用case脚本模拟nginx服务启动关闭:/etc/init.d/nginx {start|stop|restart|reload}并实现可以通过chkconfig管理
我们先ps –ef|grep nginx查看一下nginx服务状态,也可以进入/application/nginx/logs下有没有nginx.pid

由此可见当启动nginx服务时,/application/nginx/logs下存在nginx.pid,反之不存在,所有我们可以以此为判断条件编写脚本:
脚本如下:
[root@bqh-118 scripts]# vim nginx.sh
#!/bin/sh
#date:2019-04-21
#author:aゞ锦衣卫
#chkconfig:2345 28 62
#script function:Nginx service boot-up self-start script
[ -f /etc/init.d/functions ] && . /etc/init.d/functions #公共函数,提供基本函数调用
pidfile=/application/nginx/logs/nginx.pid
nginx=/application/nginx/sbin/nginx
SHAN='\E[31;5m'
RES='\E[0m'
jiance() { #定义jiance判断状态模块
RETVAL=$?
if [ $RETVAL -eq 0 ];then
action "nginx is $1" /bin/true
else
action "nginx is $1" /bin/false
fi
}
Start_nginx() { #定义nginx服务启动模块
if [ -f $pidfile ];then
echo "nginx is runing"
else
$nginx
jiance start
fi
return $RETVAL
}
Stop_nginx() { #定义nginx服务停止模块
if [ ! -f $pidfile ];then
echo "nginx is not runing!"
else
$nginx -s stop
jiance stop
fi
return $RETVAL
}
Reload_nginx() { #定义nginx服务平滑启动模块
if [ ! -f $pidfile ];then
echo -e "${SHAN}Cat't open $pidfile ,no such file or directory!${RES}"
else
$nginx -s reload
jiance reload
return $RETVAL
fi
return $RETVAL
}
case "$1" in #case交互式判断以上获取的值匹配以下哪些条件并给出相应的提示信息
start)
Start_nginx
RETVAL=$?
;;
stop)
Stop_nginx
RETVAL=$?
;;
restart)
Stop_nginx
sleep 2
Start_nginx
RETVAL=$?
;;
reload)
Reload_nginx
RETVAL=$?
;;
*)
echo -e "${SHAN}USAGE:$0 {start|stop|reload|restart}${RES}"
exit 1
esac
exit $RETVAL
执行脚本效果如下:

测试完脚本没问题,我们就cp到启动文件下并赋予可执行权限:
cp nginx.sh nginx
cp nginx /etc/init.d/&&chmod +x /etc/init.d/nginx

接着我们需要给脚本配置启动顺序,并加入到自启动项去

将nginx服务添加至自启管理配置中:
chkconfig –add nginx
查看该服务进程状态:
chkconfig –list nginx
设置启动服务状态:
chkconfig nginx off #关闭
chkconfig nginx on #启动

判断下次开机自启顺序方法:

ok,以上操作完成了nginx服务开机自启脚本管理,重启系统后即可生效。
开发nginx启动脚本及开机自启管理(case)的更多相关文章
- Nginx 启动脚本
Nginx 启动脚本 1.vim /etc/init.d/nginx #!/bin/bash # chkconfig: - 30 21 # description: http service. # S ...
- centos LNMP第一部分环境搭建 LAMP LNMP安装先后顺序 php安装 安装nginx 编写nginx启动脚本 懒汉模式 mv /usr/php/{p.conf.default,p.conf} php运行方式SAPI介绍 第二十三节课
centos LNMP第一部分环境搭建 LAMP安装先后顺序 LNMP安装先后顺序 php安装 安装nginx 编写nginx启动脚本 懒汉模式 mv /usr/local/php/{ ...
- LNMP 1.4 nginx启动脚本和配置文件
编写Nginx启动脚本,写入下面这段,授权755 vim /etc/init.d/nginx #!/bin/bash # chkconfig: - # description: http servic ...
- nginx启动脚本和配置文件
1.编写Nginx启动脚本,并加入系统服务 vim /etc/init.d/nginx并在其中写入如下内容:#!/bin/bash# chkconfig: - 30 21# description: ...
- linux nginx 启动脚本
linux nginx 启动脚本 [root@webtest76 ~]# vi /etc/init.d/nginx #!/bin/bash # nginx Startup script for the ...
- Nginx 启动脚本/重启脚本
第一步先运行命令关闭nginx sudo kill `cat /usr/local/nginx/logs/nginx.pid` 第二步 vi /etc/init.d/nginx 输入以下内容 #!/b ...
- nginx启动脚本,手动编辑
nginx启动脚本,手动编辑 #! /bin/bash # chkconfig: - # description: nginx service XDIR=/www/server/nginx DESC= ...
- 开发rsync启动脚本2
使用函数更加规范的开发rsync启动脚本 #!/bin/bash #chkconfig: #description: create by vincen . /etc/init.d/functions ...
- shell脚本之nginx启动脚本、统计日志字段、for循环实战、跳板机
1.NGINX启动脚本 #!/bin/bash # chkconfig: 235 32 62 # description: nginx [ -f /etc/init.d/functions ] &am ...
随机推荐
- 网络基础知识 - HTTP协议
前传:HTTP协议的演变过程 HTTP(HyperText Transfer Protocol)协议是基于TCP的应用层协议,它不关心数据传输的细节,主要是用来规定客户端和服务端的数据传输格式,最初是 ...
- zepto 事件分析3(add函数)
在上一篇的分析中,最后$.on方法返回了一个add方法函数的执行,在这里先看一下其代码: function add(element, events, fn, data, selector, deleg ...
- DirBuste 使用
https://sourceforge.net/projects/dirbuster/ 官网下载 记得安装java 运行环境 这是扫描 443 端口的数据 也可以自己写字典规则 在选择模糊查询时 下面 ...
- 《Unix网络编程》读书笔记
UDP和TCP UDP(User Datagram Protocol,用户数据报协议)是一个无连接协议,不保证UDP数据报会到达其最终目的地,不保证各数据报的先后顺序跨网络后保持不变,也不保证每个数据 ...
- Gvim 和vim 有什么区别
Gvim 和vim 有什么区别 Gvim是windows的 vim是linux的黑色的命令符 Gvim是单独的窗口下的vim,像notepad一样. vim就是在黑乎乎的cmd窗口下的编辑器.wind ...
- Reactor模式理解
Reactor模式 也可以叫反应器模式或者应答者模式 reactor模式简介 让我们先了解一下阻塞I/O与非阻塞I/O I/O 是非常缓慢的 I/O绝对是计算机操作中最慢的.访问RAM的事件为ns级别 ...
- Laravel篇之Laravel的安装及使用
想搭建一个基于Lavarel和vuejs的个人网站,使用git推送到github存储,千里之行,始于足下,首先要做的用composer来下载laravel框架,并成功运行. 一.使用compose ...
- JS中将变量转为字符串
译者按: 语言的细枝末节了解一下就可以了,不需要太较真,不过如果一点也不知道的话,那就不太妙了. 原文: Converting a value to string in JavaScript 译者: ...
- Offer选择与总结
今天是2015.11.23,我估计这也是继高考.保研这些决定与选择之后,又一个比较重大的人生选择.最终选择了去微信支付,按钱来说比最高的offer少五万,其实挺心疼的.但是从发展和部门核心程度来讲,应 ...
- css 如何让背景图片拉伸填充避免重复显示
如何让背景图片拉伸填充,这个问题听起来似乎很简单.但是很遗憾的告诉大家.不是我们想的那么简单. 比如一个容器(body,div,span)中设定一个背景.这个背景的长宽值在css2.1之前是不能被修改 ...