代码之家  ›  专栏  ›  技术社区  ›  tuk

Bash脚本,以确保只有一个脚本实例正在运行&其他实例正在等待

  •  1
  • tuk  · 技术社区  · 6 年前

    我有一个bash脚本 runner.sh 会引发另一个 script.sh . 脚本.sh . 我只能有一个 跑步者.sh 跑步者.sh 脚本.sh 脚本.sh .

    有人能提出一些实现这一点的方法吗?

    1 回复  |  直到 6 年前
        1
  •  3
  •   Community CDub    4 年前

    man flock :

    [“${FLOCKER}”!=”$0“]和&exec env FLOCKER=“$0”flock-en“$0”“$0” "$@" || :

    这是用于shell脚本的有用样板代码。把它放在 正在运行的shell脚本,然后执行flock并获取 在用正确的参数重新执行之前。它还设置了 将FLOCKER env var设置为正确的值,这样它就不会再次运行。

    把这个放在上面 ./script.sh runner.sh )你的车可以走了。