Нет ничего более раздражающего, чем запустить команду в терминале и заставить ее работать в течение нескольких минут, а иногда и часов, и вы не сможете снова использовать свой терминал. Конечно, вы можете использовать вкладки, но это неуклюжее решение и не всегда оптимальное, поскольку вам может понадобиться видеть обновления во время работы. Здесь мы покажем вам несколько различных способов запуска bash-команды в фоновом режиме в Linux.
Читайте также: Как использовать команду lsof в Linux для вывода списка открытых файлов
Завершите команду символом &
Если вы хотите перевести команду в фоновый режим, используйте &
в конце — это простой способ сделать это. Таким образом, вы можете выполнить команду в фоновом режиме и продолжать использовать терминал во время его работы. Однако здесь есть одна загвоздка. Использование &
не отключает от вас команду; это просто отодвигает его на задний план. Это означает, что пока вы пытаетесь использовать терминал, в
Contents
Завершите команду символом &
OUTилиSTDERR
, все равно будет напечатано, что может отвлекать.
COMMAND &
Когда сеанс терминала закрывается, команда завершается. Вы также можете отменить команду, введя команду jobs
, найдя номер выполняющейся команды и уничтожив ее с помощью команды kill
. Этот синтаксис следующий:
kill %1
Использовать &
удобно, если вам нужно немного отложить что-то, но не ждите, что это будет продолжаться вечно.
Читайте также: Как использовать команду dd в Linux
& После команды отмените ее
Выполнение команды с помощью всего лишь &
отодвигает ее назад и поддерживает ее выполнение до тех пор, пока открыто окно терминала. Однако если вы хотите, чтобы эта команда работала постоянно, даже после завершения сеанса терминала, вы можете использовать команду disown
.
Чтобы использовать этот метод, начните с добавления &
.
COMMAND &
Как упоминалось выше, использование &
переводит эту команду в фоновый режим, но не отделяет ее от пользователя. Вы можете убедиться в этом, набрав jobs
в терминале. Он покажет команду, работающую в фоновом режиме, как мы видели раньше.
Просто введите disown
в оболочку, и она сделает именно это. (И вы можете еще раз убедиться в этом с помощью команды jobs
.)
Теперь вы можете закрыть свой терминал и продолжить свой день. Он по-прежнему будет передавать данные на STDOUT
или STDERR
, но как только вы выйдете и снова откроете терминал, вы там ничего не увидите
& После команды отмените ее
командtop
или ps
и уничтожить ее с помощью команды kill
.
Читайте также: Как использовать команду Rm в Linux
& После команды с /dev/null
Добавление &
после команды переведет команду в фоновый режим, но в результате фоновая команда продолжит печатать сообщения в терминал по мере его использования. Если вы хотите предотвратить это, рассмотрите возможность перенаправления команды на /dev/null
.
COMMAND &>/dev/null &
<
Это не предотвращает закрытие команды при закрытии терминала. Однако, как упоминалось выше, можно использовать disown
, чтобы запретить пользователю выполняемую команду. Вы также можете убить его любым из упомянутых выше методов, если не хотите, чтобы он больше запускался.
Читайте также: Полное руководство по командам Apt и Apt-Get
Нет, с & и /dev/null
В отличие от предыдущих команд, использование nohup
позволяет запускать команду в фоновом режиме и поддерживать ее работу. Как? nohup
обходит сигнал HUP (зависание сигнала), позволяя выполнять команды в фоновом режиме, даже когда терминал выключен. Объедините эту команду с перенаправлением на «/dev/null» (чтобы nohup не создавал файл nohup.out), и все уходит в фоновый режим с помощью одной команды.
nohup COMMAND &>/dev/null &
Читайте также: Как создать SSL-сертификаты в Linux с помощью OpenSSL
Большинство терминальных программ в Lin
& После команды с /dev/null
оляющие им работать в фоновом режиме без особых усилий. Наряду с этим современные системы инициализации (например, системный ) позволяют пользователям запускать такие программы, как службы, при загрузке или в любое время.Тем не менее, некоторые программы в Linux не имеют возможности запускаться в качестве демона или интегрироваться с современными системами инициализации. Это реальное неудобство, но оно вполне объяснимо, поскольку не у всех разработчиков есть навыки и время для добавления новых функций.
К счастью, такие команды, как nohup
или disown
, все еще существуют и могут закрыть пробел в перемещении подобных программ на задний план. Они не идеальны и не изящны, но при необходимости выполняют свою работу.
Если вам понравилась эта статья о Linux, обязательно ознакомьтесь с другими нашими материалами о Linux, например как подключить свою учетную запись Google к GNOME Shell , лучшие дистрибутивы Linux для пользователей Windows и Команды LS, которые вам нужно знать .
Читайте также:Нет, с & и /dev/nullheasier.com/curl-command-guide/" title="Как использовать cURL для передачи данных из командной строки и многого другого">Как использовать cURL для передачи данных из командной строки и многого другого