4
我該如何限制我的程序只運行實例?目前我運行我的程序作爲守護進程(自動啓動和停止),當用戶單擊並嘗試再次啓動(這不是有效的用例)時,進程在用戶上下文中啓動,我想避免這種情況,原因很多。只允許一個程序正在運行的實例
我該如何做到這一點?
截至目前,我正在獲取進程列表,並在開始時進行一些檢查和退出,但此方法並不乾淨,儘管它解決了我的問題。
有人能給我一個更好的解決方案嗎? 而我使用ps來獲取進程列表,是否有任何可靠的API來完成這個任務?
也許你可以鎖定首先推出的過程中的一些文件,並在後續推出,你拒絕推出,如果該文件已被鎖定......(見'羊羣(2)') – Guillaume
它可能創造你的守護進程崩潰的問題? – rplusg
Mac OS X上的'fnctl'的手冊頁說:「當進程終止時,與給定進程的文件關聯的所有鎖都將被刪除。」,所以我想你會在發生崩潰時安全的,但是你應該總是小心不要造成僵局。 – Guillaume