Запуск команд Linux в фоновом режиме (+Видео). Linux статьи

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

0

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

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

Видео

Видео-версия. Наше видео про запуск команд в фоновом режиме.

Что такое приоритетный и фоновый режимы

Обычно все команды Linux запускаются в оболочке (в командной строке) в приоритетном режиме, называемом foreground. В этом режиме оболочка ожидает завершения работы команды, прежде чем пользователь сможет ввести новую команду.

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

Пользователь может запускать несколько команд в фоновом режиме одновременно. То есть эти команды будут выполняться параллельно. При этом окно терминала доступно для ввода новых команд.

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

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

Синтаксис запуска команды в фоновом режиме можно записать следующим образом:

somecommand arg1 arg2 &

Пример запуска команды в фоновом режиме

Рассмотрим пример. Предположим, нам нужно распаковать большой tar-архив. Выполняем команду:

$ tar -xf archive.tar &
[1] 7958
$ 

Распаковка архива выполняется в фоновом режиме, а мы можем вводить в терминале новые команды.

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

Как вы можете видеть, на экран выводятся символы [1] 7958 
[1] — это номер, который оболочка назначила нашему фоновому заданию, чтобы мы могли идентифицировать его и управлять им (см. ниже как).
7958 — это идентификатор (PID) процесса, который был создан.

Как вывести задание из фонового режима

Если вы запустили один или несколько процессов в фоновом режиме, то вы можете подключиться к любому из них и вывести из фонового режима (перевести в приоритетный режим). Для этого используется команда fg 

fg НомерЗадания

Команда fg, запущенная без аргументов, выводит из фонового режима последний запущенный фоновый процесс.

Например, запустим две команды в фоновом режиме и выполним команду fg. В результате мы выведем вторую команду из фонового режима.

$ tar -xf archive1.tar &
[1] 8054
$ tar -xf archive2.tar &
[2] 8055
$ fg
tar -xf archive2.tar

Перевод в приоритетный режим. Команда fg

Можно указать номер конкретного задания, которое нужно вывести из фонового режима:

$ tar -xf archive1.tar &
[1] 8054
$ tar -xf archive2.tar &
[2] 8055
$ fg 1
tar -xf archive1.tar

Просмотр заданий, работающих в фоновом режиме

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

$ jobs
[1] Запущен tar -xf archive1.tar &
[2]- Запущен tar -xf archive2.tar &
[3]+ Запущен gedit &

Использование команды jobs

Символом плюс + помечается последнее запущенное задание. Если использовать команду fg без аргументов, то она будет применена именно к этому заданию.
Символом минус  помечается задание, которое было запущено перед последним.

Перевод задания в фоновый режим

Чтобы перевести задание, которое в данный момент работает в приоритетном режиме, в фоновый режим, используется команда bg 

Так как задание работает в приоритетном режиме, то вы не можете вводить команды, поэтому сначала нужно приостановить выполнение задания. Для этого используется сочетание клавиш Ctrl+Z

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

Команда bg

Заключение

Мы кратко рассмотрели, как запускать команды Linux в фоновом режиме. Использование фонового режима позволяет запускать одновременно несколько процессов из одного окна терминала (экземпляра оболочки). Особенно это удобно, когда команда должна выполняться длительное время и не требует постоянного наблюдения. Пользователь при этом может продолжать пользоваться командной строкой.

Войдите, чтобы ставить лайкимне нравится
Лайков: +3
войдите, чтобы ставить лайки
0

Комментарии

Комментариев пока не было.

Написать комментарий

Ваше имя:
Текст комментария: