开发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

相关文章

Python开发文字版随机事件游戏的项目实例

《Python开发文字版随机事件游戏的项目实例》随机事件游戏是一种通过生成不可预测的事件来增强游戏体验的类型,在这篇博文中,我们将使用Python开发一款文字版随机事件游戏,通过这个项目,读者不仅能够... 目录项目概述2.1 游戏概念2.2 游戏特色2.3 目标玩家群体技术选择与环境准备3.1 开发环境3

CentOS和Ubuntu系统使用shell脚本创建用户和设置密码

《CentOS和Ubuntu系统使用shell脚本创建用户和设置密码》在Linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设置密码,本文写了一个shell... 在linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设

gradle第三方Jar包依赖统一管理方式

《gradle第三方Jar包依赖统一管理方式》:本文主要介绍gradle第三方Jar包依赖统一管理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录背景实现1.顶层模块build.gradle添加依赖管理插件2.顶层模块build.gradle添加所有管理依赖包

基于Python打造一个智能单词管理神器

《基于Python打造一个智能单词管理神器》这篇文章主要为大家详细介绍了如何使用Python打造一个智能单词管理神器,从查询到导出的一站式解决,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 项目概述:为什么需要这个工具2. 环境搭建与快速入门2.1 环境要求2.2 首次运行配置3. 核心功能使用指

redis中使用lua脚本的原理与基本使用详解

《redis中使用lua脚本的原理与基本使用详解》在Redis中使用Lua脚本可以实现原子性操作、减少网络开销以及提高执行效率,下面小编就来和大家详细介绍一下在redis中使用lua脚本的原理... 目录Redis 执行 Lua 脚本的原理基本使用方法使用EVAL命令执行 Lua 脚本使用EVALSHA命令

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

Nginx location匹配模式与规则详解

《Nginxlocation匹配模式与规则详解》:本文主要介绍Nginxlocation匹配模式与规则,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、环境二、匹配模式1. 精准模式2. 前缀模式(不继续匹配正则)3. 前缀模式(继续匹配正则)4. 正则模式(大

Java中Switch Case多个条件处理方法举例

《Java中SwitchCase多个条件处理方法举例》Java中switch语句用于根据变量值执行不同代码块,适用于多个条件的处理,:本文主要介绍Java中SwitchCase多个条件处理的相... 目录前言基本语法处理多个条件示例1:合并相同代码的多个case示例2:通过字符串合并多个case进阶用法使用

HTML5中的Microdata与历史记录管理详解

《HTML5中的Microdata与历史记录管理详解》Microdata作为HTML5新增的一个特性,它允许开发者在HTML文档中添加更多的语义信息,以便于搜索引擎和浏览器更好地理解页面内容,本文将探... 目录html5中的Mijscrodata与历史记录管理背景简介html5中的Microdata使用M

Spring 基于XML配置 bean管理 Bean-IOC的方法

《Spring基于XML配置bean管理Bean-IOC的方法》:本文主要介绍Spring基于XML配置bean管理Bean-IOC的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录一. spring学习的核心内容二. 基于 XML 配置 bean1. 通过类型来获取 bean2. 通过