我有一个构建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文件。
答案 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