如果子脚本在后台运行,“run-one”命令不起作用

如果子脚本在后台运行,“run-one”命令不起作用

我用运行一次命令运行test.sh,并确保每次只运行一个实例。 有时会启动另一个使用此命令 test.sh调用的长时间运行的脚本:(使用正确的路径),然后立即退出。execute.shsetsid execute.sh >/dev/null 2>&1 < /dev/null &test.sh

问题在于,出于某种原因,run-one 继续认为test.sh仍在运行,只是因为execute.sh仍在运行。我该如何防止这种情况发生?

答案1

您是否不能改用锁定文件(例如/var/lock/subsys/test),然后在脚本开始时创建一个锁定文件并运行,或者如果文件存在则退出?听起来比在使用子 shell 等时尝试将所有内容包装在另一个命令中更简单……

那么在脚本结束时您只需删除锁文件?

相关内容