编写便携式应用程序时,我应该在哪里创建 PID/锁定文件



>我正在修改我编写的应用程序,以防止多个实例同时运行。

我的第一个想法是(根据 Linux FHS)简单地将 PID 文件存储在 /var/run 中。这样,我可以检查PID文件是否存在,如果存在,则退出并显示错误。

现在,如果我希望我的应用程序是可移植的,我必须考虑到/var/run并非存在于每个系统上(例如。视窗)。

在这种情况下,最佳做法是什么?

注意:它不必是 PID 文件。0字节的"锁定"文件也可以解决问题。PID文件的优点是还可以将PID提供给需要调查问题的任何人。

澄清:该应用程序是一个备份脚本,通常由定义明确的用户运行。

一种方法是让你的应用程序依赖于移植框架(如Qt)。这样的框架提供了平台的抽象,允许你总是放在"正确的位置"(例如,对于窗口,它在XP,Vista/7之间变化)。例如,您可以看看QSettings。如果你不能依赖框架,那么深入研究他们的代码可能会提供高级答案。

IPC对象怎么样?IPC 对象是系统范围的,对吧?假设我们有一个名为"pp1232fafdsafd"的IPC对象,第二次打开它时,Linux会将errno设置为EEXIST。我们可以检查 errno 以防止多个实例运行。


作者:LZHhittlle@hotmail.com

相关内容

  • 没有找到相关文章