Есть довольно и несколько вопросов, в которых задается вопрос, что можно сделать, чтобы запустить сценарий оболочки в фоновом режиме, не запуская терминал. Большинство посоветовали использовать nohup
или disown
.
Это может быть глупый вопрос, но я новичок в Linux и Ubuntu, но может кто-нибудь объяснить мне, почему бы просто не нажать Ctrl kbd> + Alt kbd> + 1 ... 6 kbd>, чтобы открыть TTY (телетайпный терминал) и запустить сценарий с добавлением &
? Тогда я могу просто выбрать другой TTY или GUI, чтобы продолжить то, что я делаю. Я прочитал здесь, что я могу даже больше TTY (хотя ответ не говорит мне, как)
Каковы за и против этого подхода по сравнению с «общепринятым» (в SE это кажется, по крайней мере)
nohup
буквально средства no hang up
т.е. заставляют процесс проигнорировать закрытие терминала. Если Вы не будете использовать nohup
, то Ваш процесс будет уничтожен при закрытии терминала (выход из системы).
&
средства run in background
. Ваши нажатия клавиш переходят к приоритетному процессу. Таким образом, если Вы будете использовать &
процесс Вы, то запуск не получит Ваши нажатия клавиш.
оборотная сторона того, что Вы предлагаете (для выполнения каждого процесса на запасном терминале) - то, что у Вас закончатся запасные терминалы. Вы могли бы хотеть изучить использование screen
, который позволяет Вам создать терминалы динамично (ctrl-a c
). Затем можно запустить каждый процесс в различном терминале. Можно также заставить scrollback буферизовать огромный (например, 5 000 строк), таким образом, можно прокрутить назад и видеть все данные логов, не имея необходимость перенаправлять его в файлы.