防止多次运行应用程序的命令/工具

k3a*_*k3a 4 linux

我想知道是否有一些工具/应用程序可以阻止另一个工具/应用程序运行不止一次。我知道它可以通过使用 pidfile 手动完成,但没有一些工具吗?

如:/bin/ruonce /bin/myApp

当应用程序第一次在后台生成时,它将返回 0,当它已经运行时返回 1..

在 OpenRC 中,有一个很接近的 start-stop-daemon,但它不必要地复杂且不是独立的。

Gar*_*ett 8

有一个简单的实用程序称为flock将进程包装在一个锁文件中,并默认创建一个排他锁。这意味着如果先前的调用仍在运行,则由 flock 文件包装的进程的后续运行将失败。

您还可以告诉 flock 立即失败而不是等待锁定:

flock -xn /bin/yourcmd
Run Code Online (Sandbox Code Playgroud)

这个二进制文件是util-linux包的一部分,默认情况下应该在您选择的发行版上可用。