shell脚本之判断一个进程是否存在以及pgrep的用法

我们之前学过的进程查看命令有ps、top,但因为top是动态进程查看命令,所以选择ps吧。

比如我们要查看nginx进程是否存在:

[root@server1 shells]# ps -aux |grep nginx
root     21535  0.0  0.0 112704  1024 pts/0    S+   20:08   0:00 grep --color=auto nginx

很明显,进程中没有nginx的进程,唯一一个是因为我们打开了grep --color=auto nginx命令才出现的进程。如果根据进程状态返回值,能判断进程中没有嘛?

[root@server1 shells]# echo $?
0       //返回值为0,说明这个进程返回值正常。但进程中没有nginx服务啊。。。。

这个时候我们引入pgrep命令:
在这里插入图片描述
在这里插入图片描述

直接上命令:

#!/bin/bash
pgrep  nginx
 if [ "$?" -eq 0 ]
then
        echo "Be in"
else
        echo "Not in"
fi

看看运行结果:

[root@server1 shells]# systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
     Docs: man:httpd(8)
           man:apachectl(8)

[root@server1 shells]# sh jj httpd
Not in

打开服务以后:

[root@server1 shells]# systemctl start httpd
[root@server1 shells]# sh jj httpd
Be in
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值