我对bash不太了解我一直在修改代码来创建一个锁定文件,所以如果第一个进程还没有完成,cron就不会再次执行。
LOCK_FILE=./$(hostname)-lock
(set -C; : > $LOCK_FILE) 2> /dev/null
if [ $? != "0" ]; then
echo "already running (lock file exists); exiting..."
exit 1
fi
trap 'rm $LOCK_FILE' INT TERM EXIT
当我第一次运行它时,我得到的消息已经在运行,就像文件已经存在一样。
也许我错过了什么
答案 0 :(得分:1)
#!/bin/sh
(
# Wait for lock on /tmp/lock
flock -x -w 10 200 || exit 127 # you can use or not use -w
#your stuff here
) 200> /tmp/lock
检查手册页flock。
这是适合您的工具。 它在手册页中附带了示例:)