Linux
.pid 文件對於確定程序是否正在執行是否可靠?
許多程序(例如 sshd)在 /var/run/ 中創建包含其程序 ID 的 .pid 文件。這些文件對於確定程序是否正在執行是否可靠?我的猜測是這些文件是由程序手動創建的,因此如果程序崩潰,它們仍將保留在文件系統中。
簡單來說,不:程序(例如守護程序)可能會崩潰並且沒有時間清除其 .pid 文件。
一種更確定程序狀態的技術:使用顯式通信通道,例如套接字。將套接字埠寫入文件並讓
supervisor
程序查找它。您還可以在 Linux 上使用 DBus 的服務:註冊一個特定名稱並讓您的主管程序(無論您如何稱呼它)檢查該名稱。
有許多技術。
要記住的一件事:管理 PID 文件不是作業系統的責任。