防止Linux程序/守护程序在给定时间多次执行的最佳方法是什么?
最常见的方法是创建PID文件:定义文件将要到达的位置(在/ var / run内部很常见)。成功启动后,您会将PID写入此文件。在决定是否启动时,请阅读文件并检查以确保所引用的进程不存在(或者如果存在,则它不是守护程序的实例:在Linux上,您可以查看/proc/$PID/exe)。关机时,您可以删除文件,但这不是绝对必要的。
/proc/$PID/exe
有一些脚本可以帮助您做到这一点,您可能会发现start-stop- daemon它很有用:它可以使用PID文件,甚至可以全局检查可执行文件的存在。它是专门为完成此任务而设计的,旨在帮助人们正确完成任务。
start-stop- daemon