腳本代碼如下:
pid=`cat $2`
function status_job(){
pcount=`ps -ef |grep $pid |grep -v grep |wc -l`
if [ $pcount -ge 1 ]
then
pids=`ps -ef | grep "EntryPoint" | grep -v grep | awk '{print $2}'`
arr=$(echo $pids|tr " " "\n")
for x in $arr ; do
if [ "$x" == $pid ] ; then
echo "任務還在運行..."
fi
done
fi
}
function kill_job(){
kill -9 $pid
}
if [ "$1" == "status" ]
then
status_job
fi
if [ "$1" == "kill" ]
then
kill_job
fi
其中:grep -v grep 顯示查詢結果中m沒有匹配grep的行,即過濾到grep搜索進程的進程id,wc -l是判斷包含該進程id的進程有幾個,之后再借助進程id進程匹配。
再例如:
history | grep "mysql" |grep -v "netstat"
查看歷史運行過的命令中包含mysql但是不包含netstat的所有歷史命令
