4
我该如何限制我的程序只运行实例?目前我运行我的程序作为守护进程(自动启动和停止),当用户单击并尝试再次启动(这不是有效的用例)时,进程在用户上下文中启动,我想避免这种情况,原因很多。只允许一个程序正在运行的实例
我该如何做到这一点?
截至目前,我正在获取进程列表,并在开始时进行一些检查和退出,但此方法并不干净,尽管它解决了我的问题。
有人能给我一个更好的解决方案吗? 而我使用ps来获取进程列表,是否有任何可靠的API来完成这个任务?
也许你可以锁定首先推出的过程中的一些文件,并在后续推出,你拒绝推出,如果该文件已被锁定......(见'羊群(2)') – Guillaume
它可能创造你的守护进程崩溃的问题? – rplusg
Mac OS X上的'fnctl'的手册页说:“当进程终止时,与给定进程的文件关联的所有锁都将被删除。”,所以我想你会在发生崩溃时安全的,但是你应该总是小心不要造成僵局。 – Guillaume