我有一个脚本。它使用GTK。我需要知道是否有另一个脚本副本开始。如果它启动窗口将延长。
请告诉我我能检测到它的方式。
答案 0 :(得分:3)
您可以使用D-Bus服务。如果在当前会话中找不到任何服务,您的脚本将启动新服务,否则将D-Bus消息发送到正在运行的实例(可以发送“任何内容”,包括字符串,列表,dicts)。
基于GTK的库libunique(缺少Python绑定?)在“独特”应用程序的实现中使用了这种方法。
答案 1 :(得分:1)
您可以使用PID文件来确定应用程序是否已在运行(只需在Google上搜索“python守护程序”以查找一些有效的实现)。
如果您检测到该程序已在运行,您可以使用named pipes与正在运行的实例进行通信。
答案 2 :(得分:0)
新副本可以搜索正在运行的副本,触发SIGUSER
信号并在您正在运行的进程中触发回调,然后处理所有魔法。
有关详细信息和可能出错的事项列表,请参阅signal
库。
答案 3 :(得分:0)
我根据场景使用了几种方法