Запуск программ в фоновом режиме с терминала

Недавно мне стало нравиться setsid. Сначала это выглядит так, как будто вы просто запускаете что-то с терминала, но вы можете отключить (закрыть терминал), и это просто продолжается.

Это происходит потому, что команда фактически разветвляется, и в то время как входные данные поступают на текущий терминал, они принадлежат совершенно другому родительскому устройству (которое остается активным после закрытия терминала).

Пример:

setsid gnome-calculator

Я также весьма неравнодушен к disown который может быть использован для отделения процесса от текущего дерева. Вы используете его в сочетании с фоновым амперсандом:

gnome-calculator & disown

Я также только что узнал о порождении подоболочек с помощью круглых скобок. Этот простой метод работает:

(gnome-calculator &)

И, конечно же, есть nohup как вы уже упоминали. Я не в восторге от nohup потому что у него есть тенденция писать в ~/nohup.out без моей просьбы об этом. Если вы полагаетесь на это, это может быть для вас.

nohup gnome-calculator

А для долгосрочных процессов существуют такие вещи, как screen и другие виртуальные мультиплексоры терминалов, которые поддерживают сеансы между подключениями. Вероятно, это на самом деле не относится к вам, потому что вам просто нужен временный доступ к выводу терминала, но если вы хотите возвращаться некоторое время спустя и просмотрите последние действия терминала, экран, вероятно, будет вашим лучшим выбором.

Интернет полон screen учебники, но вот простой быстрый старт: