AppIndicator3 в Python занимает много времени после os.fork()

Я пишу приложение, у которого есть appindicator на python. В основном это работает нормально, но теперь я хочу разорвать выполнение, чтобы приложение запустилось "в трее" и выпустило консоль. Проблема в том, что для того, чтобы приложение отображалось после разветвления, требуется около 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 секунд.

Есть ли способ решить эту проблему? Почему индикатор так долго появляется после развилки?

0 ответов

Другие вопросы по тегам