Я в настоящее время имеют следующие настройки:Subprocess терминатор, когда Python завершает работу при использовании отречься в i3
в i3 конфигурации:
bindsym $mod+d exec xfce4-terminal --title="Supermenu" -e "path/to/supermenu"
for_window [title="Supermenu"] floating enable
Сценарий он выполняет является Python скрипт исполняемым (используя хижину и CHMOD + х), то есть эта линия (среди многих других, которые не имеют ничего общего с ним):
os.system(command + " >/dev/null 2>&1 &")
Мои ожидания, в том, что при выходе из сценария Python, процесс вызывается command
должен оставаться включенным, из-за &
. Однако он все равно выйдет после выхода xfce4-терминала! (что происходит после завершения сценария).
Я также попытался приклеивать disown
в конце и nohup
в начале, оба не сделали никакой разницы.
Я могу подтвердить это, когда скрипт завершает работу, потому что я попытался использовать time.sleep
, чтобы узнать, даже если он запускается, и да, но он завершается после закрытия терминала.
Однако, если я запускаю firefox
или ghetto-skype
, они прекращаются, однако, xfce4-terminal
не прекращается после того, как «меню» закрывается!
И даже странно - если я запустил скрипт из xfce4-терминала (а не с i3), подпроцесс тоже не завершится!
Я очень смущен относительно того, что происходит, и был бы признателен за любую помощь в его понимании и предотвратил бы закрытие процессов, отличных от xfce4-terminal
, после того, как это сделает меню.
Работала, однако мне также нужно было добавить 'time.sleep (0.1)' после 'system' по какой-то причине ... Я согласен с ответом, но, пожалуйста, добавьте, что для будущих посетителей –
Обновление: не работайте с 'eclipse' даже с более длинным сном, закрывается, как только терминал закрывается ... –
@ TheSuperCuber Обратите внимание, что вы можете ответить на свой вопрос, как только вы решите решение самостоятельно. – dorukayhan