Nginx学习笔记3:Shell脚本检测Nginx服务状态

您所在的位置:网站首页 如何判断nginx是否启动 Nginx学习笔记3:Shell脚本检测Nginx服务状态

Nginx学习笔记3:Shell脚本检测Nginx服务状态

2023-08-17 04:10| 来源: 网络整理| 查看: 265

前言

nginx 服务启动后,我们需要对其服务状态进行监控,今天学习过程中了解到一段非常有用的小脚本,不仅可以监控Nginx,也可以用来监控其他服务

脚本 A=`ps -C nginx –no-header |wc -l` if [ $A -eq 0 ];then /usr/local/nginx/sbin/nginx sleep 2 if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then killall keepalived fi fi 脚本解析 ps -C nginx –no-header

这里涉及ps 的用法,我们一般用ps查看相关进程,一般都是用 ps -ef | grep XX 或 ps -aux| grep XX 的模式 如下:

[root@bogon ~]# ps -ef | grep nginx root 2248 1 0 19:13 ? 00:00:00 nginx: master process ./nginx nobody 3265 2248 0 20:16 ? 00:00:00 nginx: worker process root 4791 4742 0 22:05 pts/1 00:00:00 grep --color=auto nginx

但是这样通常都会覆盖一个grep的进程 我们可以用ps -C 或ps -c 的方式, -C 后面接命令的名字 ,如下:

[root@bogon ~]# ps -C nginx PID TTY TIME CMD 4983 ? 00:00:00 nginx 4984 ? 00:00:00 nginx

–no-header 就是去挑title,如下:

[root@bogon ~]# ps -C nginx --no-header 4983 ? 00:00:00 nginx 4984 ? 00:00:00 nginx

wc -l 这个很熟悉了,行数计算

所以用这种方式可判断,如果 ps -C nginx --no-header|wc -l

如果值为0,即代表服务未启动 如果值为非0,即代表服务已启动

还有一个知识点,killall keepalived 这个是以服务名称杀死进程,日常中也用的挺多的

举一反三

上面那段完整的脚本意思即为: 判断nginx 服务是否启动 如果未启动,执行启动命令 再次判断,如果启动失败,关掉keepalived,进入从节点 关于Nginx的主从我们后面会实操后记录

最重要的一点是,这段脚本不仅可以用来监控Nginx,其他服务也是可以的,模式是一样的,大家可以自行试试

参考连接: Nginx学习笔记3:Shell脚本检测Nginx服务状态 : https://www.jianshu.com/p/0df46255dd1c



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3