我正在编写一个在 python 中有一个 appindicator 的应用程序。它工作得很好,但现在我想分叉执行,以便应用程序“在托盘中”启动并释放控制台。问题是应用程序被分叉后,指示器显示应用程序大约需要 10 到 15 秒。这是一些重现问题的简约示例代码:
from gi.repository import Gtk as gtk
from gi.repository import AppIndicator3 as appindicator
import os
import sys
def run_in_background():
pid = os.fork()
if pid != 0:
sys.exit(0)
def main():
indicator = appindicator.Indicator.new('an_indicator', gtk.STOCK_INFO, appindicator.IndicatorCategory.SYSTEM_SERVICES)
indicator.set_status(appindicator.IndicatorStatus.ACTIVE)
m = gtk.Menu()
indicator.set_menu(m)
gtk.main()
run_in_background()
if __name__ == "__main__":
main()
如果我删除“run_in_background()”,指示器会立即显示,但如果我引入它,大约需要 10 到 15 秒才能显示。
有没有办法解决这个问题?为什么分叉后指标显示需要这么长时间?