.pid 文件对于确定进程是否正在运行是否可靠?

ind*_*div 11 linux process pid

许多程序(例如 sshd)在 /var/run/ 中创建包含其进程 ID 的 .pid 文件。这些文件对于确定进程是否正在运行是否可靠?我的猜测是这些文件是由进程手动创建的,因此如果程序崩溃,它们仍将保留在文件系统中。

jld*_*ont 16

简单来说,没有:进程(例如守护进程)可能会崩溃并且没有时间清除其 .pid 文件。

一种更确定程序状态的技术:使用显式通信通道,例如套接字。将套接字端口写入文件并让supervisor进程查找它。

您还可以在 Linux 上使用 DBus 的服务:注册一个特定的名称并让您的主管进程(无论您怎么称呼它)检查该名称。

有许多技术。

要记住的一件事:管理 PID 文件不是操作系统的责任。

  • pid 被重用的频率取决于所讨论的特定系统。我见过一个系统的 PID 至少每天循环一次。您必须检查 pid,是否存在进程,并且该进程似乎是您希望拥有 pid 的进程。 (2认同)