Как запускать команды Linux в фоновом режиме

Команды Linux – отличный способ взаимодействия с системой с помощью терминала. Однако иногда выполнение поставленной задачи может занять некоторое время. Это заставляет пользователей ждать значительное время или вообще создавать новую оболочку.

К счастью, вы можете запускать команды Linux в фоновом режиме, следуя некоторым простым методам. Остальная часть этой статьи иллюстрирует некоторые из этих методов.

1. Добавьте амперсанд после вашей команды

Самый простой способ запустить фоновую команду Linux – добавить символ амперсанда ( & ) после команды. Например, если вы запустите текстовый редактор gedit из своего терминала, вы не сможете использовать оболочку, пока не закроете редактор. Однако, если вы добавите к своей команде дополнительный & , вы сразу же сможете использовать оболочку.

 gedit &

2. Используйте bg для отправки запущенных команд в фоновый режим.

Иногда вы запускаете команду только для того, чтобы понять, что ее выполнение занимает гораздо больше времени. Вы можете легко отправить эти команды в фон, нажав клавиши Ctrl + Z, а затем используя команду bg . Ctrl + Z останавливает запущенный процесс, а bg переводит его в фоновый режим.

Вы можете просмотреть список всех фоновых задач, набрав задания в терминале. Используйте команду fg, чтобы вернуться к запущенной задаче.

3. Отправляйте команды в фоновый режим с помощью nohup

Команда nohup в Linux позволяет администраторам запускать команды терминала, невосприимчивые к сигналам HUP или Hang Up . Вы можете запускать команды Linux в фоновом режиме с помощью nohup.

В приведенном ниже примере выполняется сканирование портов Nmap в фоновом режиме.

 nohup sudo nmap -sS --top-ports=15 192.168.1.1/24

Одним из ключевых преимуществ nohup является то, что ваши команды будут выполняться, даже если вы выйдете из оболочки. Кроме того, он генерирует файлы журнала выполнения. Найдите nohup.out в текущем каталоге или внутри $ HOME.

4. Запускать фоновые команды с помощью системных перенаправлений.

Вы также можете запускать фоновые команды в Linux, используя системные перенаправления. Например, если вы запустите приведенную ниже команду ping , ваша оболочка запустит ее в фоновом режиме и немедленно вернет приглашение терминала.

 ping -c5 8.8.8.8 >output.log 2>&1 &

Здесь вывод команды ping перенаправляется в файл output.log . Вы можете заменить его на / dev / null, если хотите отменить результат. 2> & 1 указывает bash перенаправлять любые ошибки в тот же файл. Последний & сигнализирует bash, что нужно запустить эту команду в фоновом режиме.

5. Установите команды Linux в фоновый режим, используя disown.

Команда disown в Linux упрощает выполнение команд в фоновом режиме. Во-первых, вам нужно отправить задачу в фоновом режиме с помощью оператора & . Затем введите disown, чтобы отсоединить его от оболочки.

 gedit &
disown

Одним из основных преимуществ отказа является то, что, как и nohup, система не убивает вашу задачу, когда вы закрываете оболочку или выходите из системы.

6. Запускайте команды Linux в фоновом режиме с помощью Tmux.

Tmux – это мощный мультиплексор, который позволяет нам запускать несколько терминальных сессий в одном окне. Изучение tmux – отличный выбор для людей, которые с ним не знакомы. Tmux упрощает выполнение фоновых команд в Linux.

 tmux new -d 'ping -c 10 8.8.8.8 > output.log'

Когда вы запускаете указанную выше команду tmux , она выполняет команду ping в отдельной оболочке и сохраняет ее в фоновом режиме. Используя этот метод, вы можете выполнить любую команду Linux в фоновом режиме.

Связанный: Как установить и настроить Tmux для Linux

Оставьте свои команды Linux в фоновом режиме

Возможность запускать команды в фоновом режиме делает управление системой более продуктивным для администраторов. Вы можете фонить свои задачи несколькими способами. Такие функции Bash, как & и Ctrl + Z , удобны, но система убьет фоновое задание при закрытии оболочки. С другой стороны, такие инструменты, как nohup и disown, поддерживают выполнение вашей команды даже после выхода из системы или завершения работы оболочки.

Если вы оставите свои программы в фоновом режиме на долгое время, они могут стать зомби-процессами, если они не закодированы должным образом. Эти процессы могут значительно замедлить работу системы. Поэтому не забывайте время от времени выявлять и уничтожать зомби-процессы.