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

相关文章

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

一文详解Python如何开发游戏

《一文详解Python如何开发游戏》Python是一种非常流行的编程语言,也可以用来开发游戏模组,:本文主要介绍Python如何开发游戏的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、python简介二、Python 开发 2D 游戏的优劣势优势缺点三、Python 开发 3D

Linux创建服务使用systemctl管理详解

《Linux创建服务使用systemctl管理详解》文章指导在Linux中创建systemd服务,设置文件权限为所有者读写、其他只读,重新加载配置,启动服务并检查状态,确保服务正常运行,关键步骤包括权... 目录创建服务 /usr/lib/systemd/system/设置服务文件权限:所有者读写js,其他

基于Python开发Windows自动更新控制工具

《基于Python开发Windows自动更新控制工具》在当今数字化时代,操作系统更新已成为计算机维护的重要组成部分,本文介绍一款基于Python和PyQt5的Windows自动更新控制工具,有需要的可... 目录设计原理与技术实现系统架构概述数学建模工具界面完整代码实现技术深度分析多层级控制理论服务层控制注

在Node.js中使用.env文件管理环境变量的全过程

《在Node.js中使用.env文件管理环境变量的全过程》Node.js应用程序通常依赖于环境变量来管理敏感信息或配置设置,.env文件已经成为一种流行的本地管理这些变量的方法,本文将探讨.env文件... 目录引言为什么使php用 .env 文件 ?如何在 Node.js 中使用 .env 文件最佳实践引

Java中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例解析

《Java中的分布式系统开发基于Zookeeper与Dubbo的应用案例解析》本文将通过实际案例,带你走进基于Zookeeper与Dubbo的分布式系统开发,本文通过实例代码给大家介绍的非常详... 目录Java 中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例一、分布式系统中的挑战二

python库pydantic数据验证和设置管理库的用途

《python库pydantic数据验证和设置管理库的用途》pydantic是一个用于数据验证和设置管理的Python库,它主要利用Python类型注解来定义数据模型的结构和验证规则,本文给大家介绍p... 目录主要特点和用途:Field数值验证参数总结pydantic 是一个让你能够 confidentl

基于Go语言开发一个 IP 归属地查询接口工具

《基于Go语言开发一个IP归属地查询接口工具》在日常开发中,IP地址归属地查询是一个常见需求,本文将带大家使用Go语言快速开发一个IP归属地查询接口服务,有需要的小伙伴可以了解下... 目录功能目标技术栈项目结构核心代码(main.go)使用方法扩展功能总结在日常开发中,IP 地址归属地查询是一个常见需求:

Nginx实现端口映射的示例代码

《Nginx实现端口映射的示例代码》本文主要介绍了Nginx实现端口映射的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1. 找到nginx的部署路径2. 备份原来的配置文件3. 编辑nginx.conf文件4. 在