shell 判断pid是否真实存在
问题场景:根据指定的pid号,判断该pid存在与否,存在需要结束掉该进程,不存在则不做处理。
代码:
PID=$(cat javapid.pid)
PID_EXIST=$(ps aux | awk '{print $2}'| grep -w $PID)
if [ ! $PID_EXIST ];then
echo the process $PID is not exist
else
echo the process $PID exist
kill -9 $PID
fi
ps a 显示现行终端机下的所有程序,包括其他用户的程序
ps u 以用户为主的格式来显示程序状况。
ps x 显示所有程序,不以终端机来区分。
ps aux就表示查询所有的进程,如下图
awk '{print $2}'表示取出第二个字段,也就是进程号字段
grep -w 进行精确匹配
$PID要查询的pid号
查询到就返回pid号,查询不到没有返回值