似乎只运行一个进程副本的常用方法是write a pid to a file,然后在开始时检查是否存在具有该pid的进程。我想操作系统试图在进程崩溃后不要快速重用pid,但由于pid的数量有限,迟早会有另一个使用该pid的无关进程。原来的不会开始。如何避免这种情况?
答案 0 :(得分:1)
通常,您还会检查进程名称。例如,如果在PID 10616上运行名为fork-server的进程,则以下内容将返回1:
ps -xp 10616 | grep fork-server | wc -l
当然仍然可能发生碰撞,但可能性要小得多。