我有一个二进制文件,它是一个守护进程,是用 C 语言开发的。我想在程序的开头添加一个检查,以保证该二进制文件仅启动一次。我的二进制文件在 Linux 上运行。
有什么建议么?
常见的方法是将PID 文件放入/var/run. 守护进程成功启动后,将flock其 PID 写入此文件。启动时,您检查该文件中的 PID 值(如果存在)。如果当前没有 PID 正在运行,则应用程序可以安全启动。如果 PID 存在,请检查该 PID 是否是可执行文件的实例。如果不是,也可以安全启动。您应该在退出时删除该文件,但这并不是绝对必要的。