Precondition:
1.使用$?
獲取上個(gè)命令的執(zhí)行狀態(tài),
若上個(gè)命令執(zhí)行成功次哈,則會(huì)返回0
胎署,若不成功,則返回值不為0
2.根據(jù)進(jìn)程PID查找命令CMD
ps -ef | grep $CMD | grep -v grep | awk '{print $2}'
ps -p $PID -o comm=
3.根據(jù)執(zhí)行的命令CMD查早命令的PID
pidof $CMD
pgrep $CMD
ps -C $CMD -o pid=
PS:
有沒有發(fā)現(xiàn)ps
這個(gè)命令真是無解窑滞,你可能想看看linux系統(tǒng)進(jìn)程管理
有了以上琼牧,再加個(gè)判斷
if [ $? -eq 0 ]; then
echo "Exe Success"
else
echo "Exec failure"
fi
如果想程序一直運(yùn)行,可以這么來
#!/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下監(jiān)視進(jìn)程 崩潰掛掉后自動(dòng)重啟的shell腳本