Когда я запускаю программы GUI из окна терминала (с '&' в конце), как я могу закрыть терминал, не закрывая также программы GUI?
4 ответа
Вы можете использовать disown
чтобы пропустить программу, которая отправила трубку с начального терминала. Таким образом, программа GUI остается открытой, когда терминал закрыт.
Используйте nohup
для запуска программы, она «запустит команду, не подверженную зависаниям, с выводом не-tty»
Просто добавьте в команду команду nohup
, как в
nohup kdiff3
Символ &
даже необязателен и не зависит от bash.
Ваша оболочка рабочего стола может предоставлять утилиту CLI для запуска программы с графическим интерфейсом, как если бы она была запущена из оболочки рабочего стола (я предполагаю, что утилита фактически запрашивает родительский процесс оболочки, чтобы запустить это приложение). Команда немедленно возвращается, пока открывается запущенное приложение. Вы можете закрыть терминал, не убивая запущенное приложение.
KDE/ Плазма
Для оболочки KDE/Plasma утилита имеет имя kstart <name_of_executable>
:
kstart dolphin /var/log
Оболочки на основе GTK
Вы можете использовать gtk-launch <base_name_of_desktop_file>
:
gtk-launch firefox
(при условии, что у вас есть firefox.desktop).
Я использую byobu
для этой цели.
- Первый запуск
byobu
- Затем на виртуальной вкладке
byobu
запустите вашу команду - Тогда, даже если вы закроете терминал, так как процесс
byobu
жив, ваша команда также жива. - Чтобы снова получить команду, откройте терминал, позвоните по
byobu
. Он восстановит все виртуальные вкладки, включая ту, которая содержит вашу команду.