【发布时间】:2010-10-15 20:35:57
【问题描述】:
我在哪里可以找到备受推崇的参考,详细说明如何在 Unix 上正确处理 PID 文件?
在 Unix 操作系统上,通常的做法是使用特殊的锁定文件“锁定”程序(通常是守护程序):PID 文件。
这是一个位于可预测位置的文件,通常是“/var/run/foo.pid”。该程序应该在启动时检查 PID 文件是否存在,如果该文件存在,则退出并出错。所以这是一种建议性的协作锁定机制。
该文件包含单行文本,是当前持有锁的进程的数字进程 ID(因此称为“PID 文件”);这提供了一种简单的方法来自动向持有锁的进程发送信号。
我找不到关于处理 PID 文件的预期或“最佳实践”行为的良好参考。有各种细微差别:如何实际锁定文件(不要打扰?使用内核?平台不兼容怎么办?),处理陈旧的锁(静默删除它们?何时检查?),何时获取和释放锁,等等。
我在哪里可以找到关于这个小主题的受人尊敬、最权威的参考文献(最好是 W. Richard Stevens 的水平)?
【问题讨论】:
-
$XDG_RUNTIME_DIR 如果以 1000+ uid 的用户身份运行,则应该放置 pid 文件。