在运维工作当中会遇到程序打不开或者不工作的类似情况,有部分原因是因为维持这个服务的某个进程关闭了,这时候需要检查哪些进程是否挂掉了,由于进程较多一个个来检查的话效率太慢。在这里给伙伴们安利一个简单实用的检测多个进程是否为关闭状态Shell脚本。供伙伴们参考,方法很多种可以自行摸索。大家可以一起探讨。不喜勿喷
脚本如下:
#!/bin/bash
#Author LiuMing <breeze025@163.com>
#Detecting whether multiple processes are closed
for proc_name in 进程1 进程2 进程3 #根据自己需要检测的进程来对应进程名
do
pn=`ps -ef | grep $proc_name | grep -v grep |awk '{print $2}'` #注意是反引号
if [ "${pn}" = "" ] ;then
echo -e "\033[31;1m $proc_name 进程已关闭\033[0m"
# else
# echo -e "\033[32;1m $proc_name 进程已开启\033[0m"
fi
done
一个简单的for循环遍历脚本来为我们检测常用的重要进程开启状态,我个人偏向只显示没有开启的进程,这样看起来没有输出那就是正常状态。如果想要同时显示开启的进程那就把下面两行注释去掉即可。欢迎朋友们一起讨论学习进步。也可以在脚本里加入将检测出来关闭状态的进程开启,根据自身需求来吧。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)