objective-c – 仅允许一个正在运行的程序实例
发布时间:2020-12-16 07:32:11 所属栏目:百科 来源:网络整理
导读:如何限制我的程序只运行实例?目前我正在运行我的程序作为守护程序(自动启动和停止),当用户单击并尝试再次启动时(这不是一个有效的用例),进程在用户上下文中启动,我想避免这种情况有很多原因. 我怎样才能实现这一目标? 截至目前我正在获取进程列表并进行一
如何限制我的程序只运行实例?目前我正在运行我的程序作为守护程序(自动启动和停止),当用户单击并尝试再次启动时(这不是一个有效的用例),进程在用户上下文中启动,我想避免这种情况有很多原因.
我怎样才能实现这一目标? 截至目前我正在获取进程列表并进行一些检查并在开始时退出,但这种方法并不干净,尽管它解决了我的问题. 谁能给我一个更好的解决方案? 解决方法
使用计数为1的命名信号量.在启动时,检查是否采用了此信号量.如果是,退出.否则,接受它.
概念证明代码:(放在应用程序入口点附近) #include <semaphore.h> ... if (sem_open(<UUID string for my app>,O_CREAT,600,1) == SEM_FAILED) { exit(0); } 从sem_open documentation,
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |