具有低於示例腳本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:錯誤的文件描述符' –