11. Управление заданиями

В Linux вы часто сталкиваетесь с командами, выполнение которых занимает много времени. Вместо того чтобы ждать, оставляя терминал непригодным для использования, вы можете использовать управление заданиями Linux (Linux job control) для управления этими задачами. Эта мощная функция позволяет запускать и управлять несколькими фоновыми процессами в рамках одной сессии оболочки, значительно улучшая ваш рабочий процесс.

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

Чтобы запустить процесс непосредственно в фоновом режиме, просто добавьте амперсанд (&) в конец вашей команды. Это немедленно вернет вам приглашение оболочки, позволяя вам продолжать работу, пока команда выполняется.

sleep 1000 &
sleep 1001 &
sleep 1002 &

Вывод списка фоновых заданий

Вы можете просмотреть все задания, выполняющиеся в фоновом режиме, с помощью команды jobs.

$ jobs

[1]    Running     sleep 1000 &
[2]-   Running     sleep 1001 &
[3]+   Running     sleep 1002 &

Вывод показывает идентификатор задания в первом столбце, его статус и исходную команду. Символ + указывает на самое последнее запущенное фоновое задание, а символ - — на второе по новизне.

Управление активными процессами

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

pete@icebox ~ $ sleep 1003
^Z
[4]+    Stopped     sleep 1003

pete@icebox ~ $ bg
[4]+    sleep 1003 &

Теперь процесс sleep 1003 выполняется как фоновое задание, и вы можете убедиться в этом с помощью команды jobs.

Вывод задания на передний план

Чтобы вернуть фоновый процесс на передний план, используйте команду fg. Вы можете указать конкретное задание по его идентификатору (например, fg %1). Если вы запустите команду fg без аргументов, она выведет на передний план самое последнее фоновое задание (обозначенное символом +).

fg %1

Завершение фоновых заданий

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

kill %1

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

Войдите, чтобы сохранить ваш прогресс обучения

Вход

Упражнения

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

  1. Управление и мониторинг процессов Linux - Практикуйтесь во взаимодействии с процессами на переднем и заднем планах, мониторинге ресурсов и завершении процессов, что напрямую соответствует сценарию долго выполняющихся команд.

Тест

What command is used to list background jobs? (Please answer in English, using only lowercase letters.)