首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Mac OS X中检测进程实例

在Mac OS X中检测进程实例
EN

Stack Overflow用户
提问于 2012-01-11 22:13:18
回答 1查看 273关注 0票数 2

我正在尝试实现一种方法来检测应用程序的另一个实例是否已经启动,并且一直在修补: 1.共享内存2.命名互斥锁3.命名管道

似乎所有这些都有一个缺陷,即如果“主”应用程序崩溃,"IPC“对象将被挂起,从而使应用程序的所有未来实例认为有另一个实例处于活动状态(直到重启)。理想情况下,我希望有一个对象,它可以在进程终止时自动删除,无论是正常终止还是崩溃。

想法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-11 22:42:54

我见过使用文件和文件锁定来做到这一点。主应用程序检查/tmp中是否存在文件。如果该文件当前已锁定,则该应用程序已在运行。如果文件不存在或未锁定,则它不会运行。根据操作系统的不同,您需要以原子方式执行此操作,以避免竞争条件。

这样,如果程序崩溃,操作系统会自动关闭该文件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8820726

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档