3.9.8.5 Управление задачами в командной строке
Скачать документРЕД ОС является многозадачной системой, способной одновременно выполнять несколько задач (или процессов). На самом деле одно ядро процессора может выполнять только один процесс в определённый момент времени. Но ядро Linux управляет задачами и чередует их выполнение на процессоре так, что пользователю кажется их выполнение одновременным. Всеми процессами можно управлять из командной строки.
Существует множество команд для управления процессами из командной строки, рассмотрим некоторые из них:
ps — список запущенных процессов на компьютере;
kill — отправка сигнала одному или нескольким процессам;
jobs — просмотр списка собственных задач сеанса оболочки;
bg — выполнение задачи в фоновом режиме;
fg — возврат задачи из фонового режима.
Вы можете подробнее ознакомиться со способами управления задачами, просмотрев наши обучающие видео:
на RuTube — Управление задачами в bash;
в Яндекс.Дзен — Управление задачами в bash;
в VK Видео — Управление задачами в bash.
На наших каналах вы также сможете найти много другой полезной информации.
Для примера будет использоваться утилита ping
с отправкой запросов каждые 9 секунд:
ping -i 9 red-soft.ru
Таким образом, активирован процесс, привязанный к данному терминалу, из-за чего работа с командной строкой становится невозможной. Но, поскольку командная строка необходима для дальнейшей работы, прервём выполнение команды «горячими» клавишами оболочки — «Ctrl+C» и запустим данную команду в фоновом режиме, для этого в конце команды необходимо добавить символ «&»:
ping -i 9 red-soft.ru &
Теперь командная строка доступна для работы, и каждые 9 секунд демонстрируется результат команды ping
. И хотя процесс не занимает собой командную строку оболочки, он всё равно привязан к текущему терминалу. В таком случае говорят, что процесс стал собственной задачей текущего сеанса оболочки.
Для отображения списка задач в текущем сеансе оболочки можно воспользоваться командой jobs
:
jobs [1]+ Запущен ping -i 9 red-soft.ru
В квадратных скобках указан номер задачи в текущем терминале, его можно использовать в том числе и для завершения процесса утилитой kill
, но в отличие от идентификатора процесса, который указывается «обычным» цифровым значением, перед номером задачи ставится знак «%». Например:
kill %1
Для возвращения фонового процесса обратно в интерактивный режим необходимо использовать утилиту fg
(foreground). Данную команду необходимо выполнять с переданным в качестве аргумента номером фоновой задачи (получить его можно из вывода команды jobs):
fg 1
Клавиатурное сочетание «Ctrl+Z» отправляет задачу в фон и ставит её выполнение на паузу. Иными словами, процесс не получает ресурсов центрального процессора для своего выполнения и находится в режиме ожидания.
Когда понадобится продолжить выполнение остановленной задачи, можно воспользоваться утилитой fg
, описанной выше, или другой командой — bg
(background). Утилита bg
пробуждает задачу и отправляет её в фон:
В выводе команды отображаются результаты отправки ICMP-пакета (основная задача ping) и выводятся на экран — это значит, что процесс снова работает на заднем плане, не взаимодействуя с командной строкой.
Дата последнего изменения: 08.10.2024
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.