1

我正在编写一个在 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 秒才能显示。

有没有办法解决这个问题?为什么分叉后指标显示需要这么长时间?

4

0 回答 0