美文网首页
Linux bash中判断命令的执行状态、PID、CMD

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

作者: 疾飞 | 来源:发表于2019-05-30 00:10 被阅读0次

    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

          本文链接:https://www.haomeiwen.com/subject/gmhrzqtx.html