小编Man*_*wal的帖子

sh 脚本不算顶级命令

我编写了一个脚本来检查进程是否在 Ubuntu 服务器(14.04)上运行,它工作正常,但在测试它时,我发现它不包括在其他终端中运行的 top 命令计数

内容 check-process.sh

 #!/bin/sh 
 OK=1
 CRITICAL=0
 PROCESS_NUM=$( ps -ef | grep $1 | grep -v "grep "|grep -v "sh"|wc -l )
 #echo $PROCESS_NUM

 if [ $PROCESS_NUM = $OK ]
 then
  echo "OK"
 elif [ $PROCESS_NUM = $CRITICAL ]
 then
  echo "CRITICAL"
 elif [ $PROCESS_NUM > $OK ]
 then
  echo "MULTIPLE process are runing"
 else
  echo "error"
 fi
Run Code Online (Sandbox Code Playgroud)

top在两个终端中运行命令,并按如下方式运行此脚本:

./check-process.sh top
Run Code Online (Sandbox Code Playgroud)

输出是0 CRITICAL,但是当我运行正常命令时,ps -ef |grep -v "grep "| wc -l它给出了两个计数。

bash

1
推荐指数
1
解决办法
567
查看次数

标签 统计

bash ×1