Linux bash中判断命令的执行状态、PID、CMD

Precondition:

1.使用$?获取上个命令的执行状态,
若上个命令执行成功,则会返回0,若不成功,则返回值不为0

2.根据进程PID查找命令CMD
ps -ef | grep $CMD | grep -v grep | awk '{print $2}'
ps -p $PID -o comm=

3.根据执行的命令CMD查早命令的PID
pidof $CMD
pgrep $CMD
ps -C $CMD -o pid=

PS:
有没有发现ps这个命令真是无解,你可能想看看linux系统进程管理


有了以上,再加个判断

if [ $? -eq 0 ]; then
        echo "Exe Success"
else
        echo "Exec failure"
fi

如果想程序一直运行,可以这么来

#!/bin/bash
#############
##  deamon  ##
############
while true :
do

CMD=/home/summer/ss
Xstat=`pgrep $CMD | wc -l`

if [ Xstat != 0 ];then
        echo "$CMD is starting"
        `$CMD`
else
        echo "$CMD is runing"
fi
        sleep 10
done


Reference:

linux下监视进程 崩溃挂掉后自动重启的shell脚本

PS:

用shell脚本监控进程是否存在 不存在则启动的实例

你可能感兴趣的:(Linux bash中判断命令的执行状态、PID、CMD)