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
网友评论