Нет ничего более раздражающего, чем запустить команду в своем терминале и заставить ее работать в течение минут, а иногда и часов, и не иметь возможности снова использовать свой терминал.
Конечно, вы можете использовать вкладки, но это неуклюжее решение, и оно не всегда оптимально, потому что вы можете видеть обновления во время работы.
Здесь мы покажем вам несколько различных способов запуска команд bash в фоновом режиме на Linux.
Концовка команды с &
Если вы хотите поместить команду в фоновый режим, используйте & в конце – это простой способ сделать это.
Таким образом, вы можете выполнить команду в фоновом режиме и продолжать использовать свой терминал.
Тем не менее, здесь есть одна загвоздка.
Использование & полностью не заставит вас забыть про команду ; оно просто отодвигает ее на задний план.
Это означает, что пока вы пытаетесь использовать терминал, все, что команда захочет передать в STDOUT или STDERR, все равно будет выведено, что может отвлекать.
COMMAND &
& после команды с /dev/null
Добавление & после команды переведет команду в фоновый режим, но в результате фоновая команда продолжит выводить сообщения в терминал по мере того, как вы ее используете.
Если вы хотите предотвратить это, подумайте о перенаправлении команды в /dev/null.
COMMAND &>/dev/null &
Это не мешает команде закрыться при закрытии терминала.
Однако, как упоминалось выше, можно использовать disown, чтобы запретить выполнение текущей команды пользователю.
Вы также можете убить ее любым из методов, упомянутых выше, если вы больше не хотите, чтобы команда запускалась.
Использование Nohup, с & и /dev/null
В отличие от предыдущих команд, использование nohup позволяет запускать команду в фоновом режиме и поддерживать ее выполнение.
Как? nohup обходит сигнал HUP (сигнал зависания), что позволяет запускать команды в фоновом режиме, даже когда терминал выключен.
Объедините эту команду с перенаправлением в «/dev/null» (чтобы nohup не создавал файл nohup.out), и все перейдет в фон с помощью одной команды.
nohup COMMAND &>/dev/null &
