开发nginx启动脚本及开机自启管理(case)

2024-08-30 14:38

本文主要是介绍开发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,反之不存在,所有我们可以以此为判断条件编写脚本:

脚本如下:

 1 [root@bqh-118 scripts]# vim nginx.sh 2 #!/bin/sh3 #date:2019-04-214 #author:aゞ锦衣卫5 #chkconfig:2345 28 626 #script function:Nginx service boot-up self-start script7 [ -f /etc/init.d/functions ] && . /etc/init.d/functions   #公共函数,提供基本函数调用8 pidfile=/application/nginx/logs/nginx.pid9 nginx=/application/nginx/sbin/nginx
10 SHAN='\E[31;5m'
11 RES='\E[0m'
12 jiance() {                                                #定义jiance判断状态模块
13         RETVAL=$?
14         if [ $RETVAL -eq 0 ];then
15         action "nginx is $1" /bin/true
16         else
17         action "nginx is $1" /bin/false
18         fi
19 }
20 Start_nginx() {                                           #定义nginx服务启动模块
21 if [ -f $pidfile ];then
22         echo "nginx is runing"
23     else
24         $nginx
25         jiance start
26 fi
27         return $RETVAL
28 }
29 Stop_nginx() {                                            #定义nginx服务停止模块
30 if [ ! -f $pidfile ];then
31         echo "nginx is not runing!"     
32     else
33         $nginx -s stop
34         jiance stop
35 fi
36         return $RETVAL
37 }
38 Reload_nginx() {                                            #定义nginx服务平滑启动模块
39 if [ ! -f $pidfile ];then
40         echo -e "${SHAN}Cat't open $pidfile ,no such file or directory!${RES}"
41     else
42         $nginx -s reload
43         jiance reload
44         return $RETVAL
45 fi
46         return $RETVAL
47 }
48 case "$1" in                 #case交互式判断以上获取的值匹配以下哪些条件并给出相应的提示信息
49         start)
50           Start_nginx
51                 RETVAL=$?
52         ;;
53         stop)
54           Stop_nginx
55                 RETVAL=$?
56         ;;
57         restart)
58           Stop_nginx
59           sleep 2
60           Start_nginx
61                 RETVAL=$?
62          ;;
63         reload)
64           Reload_nginx
65                 RETVAL=$?
66         ;;
67         *)
68           echo -e "${SHAN}USAGE:$0 {start|stop|reload|restart}${RES}"
69           exit 1
70 esac
71 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)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1121103

相关文章

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

SpringBoot开发中十大常见陷阱深度解析与避坑指南

《SpringBoot开发中十大常见陷阱深度解析与避坑指南》在SpringBoot的开发过程中,即使是经验丰富的开发者也难免会遇到各种棘手的问题,本文将针对SpringBoot开发中十大常见的“坑... 目录引言一、配置总出错?是不是同时用了.properties和.yml?二、换个位置配置就失效?搞清楚加

利用Python脚本实现批量将图片转换为WebP格式

《利用Python脚本实现批量将图片转换为WebP格式》Python语言的简洁语法和库支持使其成为图像处理的理想选择,本文将介绍如何利用Python实现批量将图片转换为WebP格式的脚本,WebP作为... 目录简介1. python在图像处理中的应用2. WebP格式的原理和优势2.1 WebP格式与传统

前端如何通过nginx访问本地端口

《前端如何通过nginx访问本地端口》:本文主要介绍前端如何通过nginx访问本地端口的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、nginx安装1、下载(1)下载地址(2)系统选择(3)版本选择2、安装部署(1)解压(2)配置文件修改(3)启动(4)

Python中对FFmpeg封装开发库FFmpy详解

《Python中对FFmpeg封装开发库FFmpy详解》:本文主要介绍Python中对FFmpeg封装开发库FFmpy,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、FFmpy简介与安装1.1 FFmpy概述1.2 安装方法二、FFmpy核心类与方法2.1 FF

Nginx 重写与重定向配置方法

《Nginx重写与重定向配置方法》Nginx重写与重定向区别:重写修改路径(客户端无感知),重定向跳转新URL(客户端感知),try_files检查文件/目录存在性,return301直接返回永久重... 目录一.try_files指令二.return指令三.rewrite指令区分重写与重定向重写: 请求

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

Nginx 配置跨域的实现及常见问题解决

《Nginx配置跨域的实现及常见问题解决》本文主要介绍了Nginx配置跨域的实现及常见问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来... 目录1. 跨域1.1 同源策略1.2 跨域资源共享(CORS)2. Nginx 配置跨域的场景2.1

nginx启动命令和默认配置文件的使用

《nginx启动命令和默认配置文件的使用》:本文主要介绍nginx启动命令和默认配置文件的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录常见命令nginx.conf配置文件location匹配规则图片服务器总结常见命令# 默认配置文件启动./nginx

Linux脚本(shell)的使用方式

《Linux脚本(shell)的使用方式》:本文主要介绍Linux脚本(shell)的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述语法详解数学运算表达式Shell变量变量分类环境变量Shell内部变量自定义变量:定义、赋值自定义变量:引用、修改、删