Я понимаю, что это старая тема, но я помню, что нашел более сложное решение, чем перечисленные здесь.
$ (gui_app &> /dev/null &)
"&> /dev/null" перенаправляет stdout и stderr на нулевое устройство. Последний амперсанд заставляет процесс работать в фоновом режиме. Скобки вокруг команды станет причиной вашего "gui_app" для работы в подоболочку.
это отключить "процесс gui_app" из консоли Выполнить эту команду. Так что даже если вы закроете окно эмулятор родительского терминала запущен, "gui_app" не закрывается. Я побежал потом посмотрел на дерево процесса с командой "pstree" и нашла применение начал этот путь станет дочернего процесса "инит".
например,
$ gui_app &> /dev/null &
запустить приложение в фоновом режиме, но оно станет дочерним процессом процесса консоли и прекращает при закрытии терминала. (Хотя выход из терминала через bash с помощью команды exit или Ctrl-D будет пусть bash очистит, передав фоновый процесс init.)
альтернативно, вы можете использовать "nohup", но это перенаправляет вывод & error в файл по умолчанию. команда" disown " (если она доступна в оболочке) может отсоединить процесс от терминала после запуска фонового процесса:
$ gui_app &
$ disown
(кстати все это относится к bash. Я уверен, что другие оболочки имеют другие методы / синтаксис для этого.)
подобный суперпользователь Q&A-может быть, где я помню некоторые из ответы от:... запустите программы GUI linux из командной строки, но отдельно от командной строки?
ссылка:
процессы отключения (Unix Power Tools)
Если это простой вызов приложения с графическим интерфейсом-без сложных опций и тому подобное-кажется, с помощью запуска, как "gmrun" или dmenu (предупреждение: громкий звук) также является хорошим вариантом. Свяжите его с комбинацией клавиш. Я еще не использую пусковую установку, но пробовал эти двое.
Примечание: CarlF в комментариях сообщает GUI приложений, запущенных с помощью" gui_app & " метод не закрывается, когда он выходит из родительского терминала. Я думаю, что мы закрывали терминал по-разному. Я закрывал окно, в котором работал эмулятор терминала. Я думаю, что он, возможно, выходил из эмулятора терминала через оболочку (команда exit или Ctrl-D). Я проверил это и увидел, что выход через bash не останавливает графический интерфейс, запущенный как фоновый процесс терминала, как CarlF говорит. Похоже, Баш руки от фоновых процессов в init, когда дается шанс очистить. По сути, это должен быть механизм, с помощью которого фоновый процесс запускается в случае, когда выдачи инит.