如何检查kill exit bash脚本

时间:2014-11-18 13:02:11

标签: bash

我有一个构建pid文件的脚本:

if [ -f $PIDDIR$NOS.pid ]
then
echo "PID exists"
exit 1
else
echo "PID does not exist"
echo
echo "build..."
touch $PIDDIR$NOS.pid
[starting script...]

我需要“检查”删除该文件,如果(即)脚本已经死亡或其他问题,如磁盘已满。否则,下一次执行脚本不会运行,因为有pid文件。

1 个答案:

答案 0 :(得分:1)

通常的解决方案是,不仅要依赖文件的存在,还要将PID写入其中,并检查PID是否与文件一起存在。 如果没有,则PID是陈旧的。

PID=$(cat program.pid)
if [ -e /proc/${PID} -a /proc/${PID}/exe -ef /usr/bin/program ]; then
   echo "Still running"
fi

(见这里:http://www.odi.ch/weblog/posting.php?posting=291