具有低于示例脚本sample.sh
如何从脚本本身检查脚本是否正在运行?
#!/bin/bash
if ps aux | grep -o "sample.sh" >/dev/null
then
echo "Already script running"
exit 0
fi
echo "start script"
while true
do
echo "script running"
sleep 5
done
在上面的脚本中,我要检查,如果该脚本之前运行或不运行,如果没有,然后再运行它。
问题是检查条件总是成真(因为检查条件需要运行脚本),它总是显示我"Already script running"
消息。
任何想法如何解决它?
我相信锁定文件不应该被删除。无需删除它,如果删除它,则存在在被锁定时删除它的风险,这会中断该锁(因为锁仍然存在,但文件将会更改)。 –
在程序中删除它是无害的,因为一旦程序退出,锁将自动释放。我倾向于删除我创建的临时工。 –
但它显示错误像'./sample.sh:第3行:/tmp/lock../sample.sh.file:没有这样的文件或目录 flock:201:错误的文件描述符' –