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

93 篇文章 8 订阅

前言

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

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值