我用运行一次命令运行test.sh
,并确保每次只运行一个实例。 有时会启动另一个使用此命令 test.sh
调用的长时间运行的脚本:(使用正确的路径),然后立即退出。execute.sh
setsid execute.sh >/dev/null 2>&1 < /dev/null &
test.sh
问题在于,出于某种原因,run-one 继续认为test.sh
仍在运行,只是因为execute.sh
仍在运行。我该如何防止这种情况发生?
答案1
您是否不能改用锁定文件(例如/var/lock/subsys/test
),然后在脚本开始时创建一个锁定文件并运行,或者如果文件存在则退出?听起来比在使用子 shell 等时尝试将所有内容包装在另一个命令中更简单……
那么在脚本结束时您只需删除锁文件?