Держите программу работающей в терминале


8

Так что я хорошо знаю nohupи добавляю суффиксы к командам, &чтобы они уходили в фоновый режим.

Однако, если я запускаю графическое приложение - иногда использование ни того, ни другого, кажется, не справится с работой. Итак, что я могу добавить к программе / команде, чтобы она продолжала работать после закрытия терминала?

Ответы:


9

Если вы хотите, чтобы приложение продолжало работать при закрытии окна терминала, вы должны сделать:

nohup chromium-browser &

Вам нужно и то nohupи другое &.

  • nohup означает держать этот процесс / команду запущенной после закрытия оболочки.
  • & означает поместить этот процесс / команду в фоновый режим, чтобы он не блокировал оболочку (так что вы можете использовать его для чего-то другого.

5

при запуске программы в фоновом режиме через оператор & она все еще привязана к вашему сеансу и может управляться с помощью fg, bg, jobs и disown.

У меня также были некоторые проблемы с nohup, но вы могли бы отречься от этого.

Когда вы запускаете программу в фоновом режиме, она имеет идентификатор задания:

gedit &
[1] 5647

Это число в скобках [] является интересным. Чтобы отключить его от вашего сеанса, запустите disown %nс этим номером. Для приведенного выше примера:

disown %1

Теперь вы можете безопасно выйти из терминала, и процесс не будет прекращен.


2

Для графических приложений просто делать что-то подобное должно работать (по крайней мере, для меня)

chromium-browser&

Для терминальных приложений вы должны использовать что-то вроде screenили tmux.


-1, поскольку это не будет работать для требования продолжать работу после закрытия терминала. +1 за предложение screen / tmux.
gertvdijk

@gertvdijk интересно, для приложений с графическим интерфейсом это работает для меня. Только что протестировал с помощью bash. У меня были случаи, когда zsh будет жаловаться, если я сделаю это, а затем попытаюсь выйти ...
jrg

Я использовал Konsole и запустил в нее Кейт с &добавлением. Кейт закроется впоследствии после закрытия Konsole.
gertvdijk

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.