WEBPRIME
contacts@webprime.com.ua

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

Опубликовано 31 октября 2021

Запускаем команду Linux в фоновом режиме

Чтобы выполнить команду в фоновом режиме, добавьте символ амперсанда (&) в конец команды:

command &

ID задания (окруженное скобками) и ID процесса напечатаются в терминале:

[1] 30431

В фоновом режиме можно запускать несколько процессов одновременно. В данном случае фоновый процесс будет продолжать писать сообщения в терминал, с которого вы вызвали команду. Для подавления сообщений stdout и stderr используйте следующий синтаксис:

command > /dev/null 2>&1 &

/dev/null 2>&1 означает перенаправление stdout на /dev/null и stderr на stdout.

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

jobs -l

На выходе отображается номер задания, идентификатор процесса, состояние задания и команда, с помощью которой оно было запущено:

[1]+ 31102 Running                 ping devacademy.ru > /dev/null 2>&1 &

Чтобы вывести фоновый процесс на передний план, используйте команду fg:

fg

Если у вас несколько фоновых заданий, укажите % и ID задания после команды:

fg %1

Чтобы завершить фоновый процесс, используйте команду kill, за которой следует ID процесса:

kill -9 31447

[1]+  Killed                  ping devacademy.ru > /dev/null 2>&1

Перенос процесса с переднего плана в фоновый режим

Перемещение выполняющегося процесса с переднего плана в фоновый режим:

  • Остановите процесс, нажав Ctrl+Z.
  • Переместите остановленный процесс в фоновый режим, набрав bg.

Поддерживание фоновых процессов в рабочем состоянии после выхода оболочки

Если ваше соединение прервется или вы выйдете из сессии командной строки, фоновые процессы будут прерваны. Существует несколько способов сохранить процесс после завершения сеанса интерактивной оболочки. Один из способов — удалить задание из системы управления заданиями оболочки с помощью команды disown:

disown

Если у вас несколько фоновых заданий, укажите % и ID задания после команды:

disown %1

Убедитесь, что задание удалено из таблицы активных заданий с помощью команды jobs -l. Чтобы перечислить все запущенные процессы, включая процессы, от которых отказались, воспользуйтесь командой ps aux. Другой способ сохранить процесс запущенным после выхода из оболочки — использовать nohup.

Команда nohup выполняет другую команду, указанную в качестве аргумента, и игнорирует все сигналы SIGHUP (зависание). SIGHUP — это сигнал, посылаемый на процесс, когда его управляющая оболочка закрыта.
Чтобы выполнить команду в фоновом режиме с помощью команды nohup, введите ее:

nohup command &

Вывод команды перенаправляется в файл nohup.out.

nohup: ignoring input and appending output to 'nohup.out'

Если вы выйдете из системы или закроете терминал, процесс не будет завершен.

Автор статьи: devacademy.ru — Павел Соловьёв

Оцените эту статью:
0 оценок, среднее: 0,00 из 50 оценок, среднее: 0,00 из 50 оценок, среднее: 0,00 из 50 оценок, среднее: 0,00 из 50 оценок, среднее: 0,00 из 5 (0 оценок, среднее: 0,00 из 5)
Для того чтобы оценить запись, вы должны быть зарегистрированным пользователем сайта.
Загрузка...

Бесплатная консультация
по телефону
Время работы менеджеров ежедневно с 8:00 до 17:00
Нажимая кнопку "отправить" вы соглашаетесь на обработку персональных данных.
Сообщение успешно отправлено
в ближайшее время с Вами свяжется наш менеджер