Я написал ответ к более старой теме подобной теме с ответами из разных источников. Ниже приводится копия этого ответа, адаптированная для этой темы.
следующие работы:
$ (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" работает так, как предложил NawaMan, но по умолчанию перенаправляет вывод & error в файл. Как JeffG ответил, команду "откреститься" (если он в оболочке) можно отвязать процесс от терминала после того, как вы начали фона процесс:
$ gui_app &
$ disown
(кстати все это относится к bash. Я уверен, что другие оболочки имеют другие методы / синтаксис для этого.)
ссылка:
процессы отключения (Unix Power Tools)
Если это простой вызов приложения с графическим интерфейсом-без сложных опций и тому подобное-кажется, с помощью запуска, как "gmrun" или dmenu (предупреждение: громкий звук) также является хорошим вариантом. Свяжите его с комбинацией клавиш. Я еще не использую пусковую установку, но попробовали те двое.
Примечание: CarlF в комментарии другой темы отчеты GUI приложения, запущенные с помощью" gui_app & " метод не закрывается, когда он выходит из родительского терминала. Я думаю, что мы закрывали терминал по-разному. Я закрывал окно, в котором работал эмулятор терминала. Я думаю, что он, возможно, выходил из эмулятора терминала через оболочку (команда exit или Ctrl-D). Я проверил это и увидел, что выход через bash не останавливает GUI запускается как фоновый процесс, терминала CarlF говорит. Похоже, Баш руки от фоновых процессов в init, когда дается шанс очистить. По сути, это должен быть механизм, с помощью которого фоновый процесс запускается в случае, когда выдачи инит.