grep在linux shell中的应用–判断进程是否存在,进程若不存在则重启

1,进程判断

没有运行进程时,如下显示,只有一条,这条就是这条命令的进程。

ps -aux |grep nginx
root       3621  0.0  0.0  12112  1072 pts/0    S+   15:01   0:00 grep --color=auto nginx

如果进程存在就会显示多条进程信息,其中一条包括上述命令这条。

所以判断是否存在,只要判断数量即可,命令为:

ps -aux |grep nginx |wc -l

进程数如果大于1的话,则进程存在,否则不存在。

ps -aux |grep nginx|wc -l 
7

2,脚本内容

下面是最简单的判断,如果进程的数量小于等于1,则进程不存在,然后重启。

#/root/nginxexist.sh的内容
#!/bin/bash
procnumber=$(ps -aux |grep -w nginx|wc -l)    #这里grep加上了-w参数意为精确匹配
if [ ${procnumber} -le 1 ];then
		systemctl restart nginx
fi

shell中判断相关参数:

-eq:等于
-ne:不等于
-le:小于等于
-ge:大于等于
-lt:小于
-gt:大于

3,定时任务

脚本完成后,需添加系统定时任务。

每隔10分钟检查一下nginx进程是否存在,如不存在,重启。否则

crontab -e 
#添加脚本位置,分10分钟执行一次
*/10 * * * * /bin/bash /root/nginxexist.sh
Logo

更多推荐