Управление заданиями (bg, fg, jobs)
Освойте управление фоновыми и передними процессами: приостанавливайте, возобновляйте и просматривайте задания в сеансе оболочки.
«Управление заданиями (bg, fg, jobs)» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.
Что такое управление заданиями?
Добро пожаловать в раздел об управлении заданиями! Эта мощная возможность оболочки Linux позволяет управлять выполняющимися программами, не закрывая терминал и не открывая новый.
Представьте, что это многозадачность в командной строке. Вы можете приостановить задачу, переместить её в фоновый режим или вернуть на передний план.
Передний и фоновый режимы
При выполнении команды обычно используется передний режим. Это означает, что команда занимает Ваш терминал, и Вы не можете вводить новые команды, пока она не завершится.
Однако фоновый процесс выполняется независимо. Он освобождает терминал, поэтому Вы можете продолжать работать над другими задачами, пока процесс выполняется.
Приостановка процесса (Ctrl+Z)
Чтобы приостановить работающий передний процесс, используйте сочетание клавиш Ctrl+Z. Оно отправляет сигнал SIGTSTP, приостанавливая процесс.
Процесс не завершается: он становится «остановленной» задачей и ждёт, пока Вы укажете, что делать дальше.
Просмотр задач (jobs)
После приостановки процесса (или его отправки в фоновый режим) Вы можете просмотреть список всех активных задач в текущем сеансе оболочки с помощью команды jobs.
Каждая задача получает уникальный номер (например, [1], [2] и т. д.) и свой статус (например, Stopped, Running).
sleep 50 &
sleep 60 &
jobsВозврат в передний режим (fg)
Если задача остановлена или выполняется в фоновом режиме, Вы можете вернуть её в передний режим с помощью команды fg, указав после неё номер задачи (например, %1).
После этого задача снова станет активным процессом в Вашем терминале.
sleep 100 &
jobs
# Now, let's bring it to foreground
fg %1Отправка в фоновый режим (bg)
Чтобы возобновить остановленную задачу и отправить её в фоновый режим, используйте команду bg с номером задачи.
Процесс продолжит выполняться, не блокируя терминал, а приглашение командной строки сразу снова станет доступно.
sleep 200
# Press Ctrl+Z to stop it
# Then type:
bg %1
jobsРабота в фоновом режиме ( & )
Не всегда нужно запускать процесс в переднем режиме, а затем приостанавливать его. Вы можете сразу запустить команду в фоновом режиме, добавив амперсанд (&) в конец команды.
Это особенно удобно для длительных задач, с которыми не требуется взаимодействовать.
echo "Starting long task..." &
sleep 300 &
jobsНомера задач и PID
При использовании jobs отображаются номера задач, например [1], [2]. Эти номера относятся только к текущему сеансу оболочки.
Каждый работающий процесс также имеет уникальный идентификатор процесса (PID) — номер, действующий во всей системе. Просмотреть PID можно с помощью команд jobs -l или ps.
sleep 100 &
jobs -lОстановка задач (kill)
Чтобы завершить фоновую или остановленную задачу, можно использовать команду kill. Можно указать номер задачи (например, kill %1) или её PID (например, kill 12345).
Команда kill отправляет процессу сигнал. По умолчанию это SIGTERM (корректное завершение). Для принудительного завершения используйте kill -9 %job_number или kill -9 PID.
sleep 500 &
jobs
# Assuming sleep is job 1:
kill %1
jobsТест: управление задачами
Вы запустили длительную команду (например, find / -name *.txt), но теперь Вам нужно освободить терминал, чтобы ввести другую команду. Какова правильная последовательность действий, чтобы приостановить команду find, отправить её в фоновый режим, продолжить выполнение и затем убедиться, что это фоновая задача?
Повторение: управление задачами
Вы освоили управление задачами!
Ctrl+Zприостанавливает процесс в переднем режиме.jobsвыводит список всех активных задач.fg %Nвозвращает задачуNв передний режим.bg %Nотправляет остановленную задачуNв фоновый режим.- Добавление
&запускает команду непосредственно в фоновом режиме. kill %Nилиkill PIDзавершает задачу.
Это позволяет эффективно управлять несколькими задачами в одном сеансе терминала!
Часто задаваемые вопросы
Урок «Управление заданиями (bg, fg, jobs)» бесплатный?
Да — полный текст урока «Управление заданиями (bg, fg, jobs)» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.
Чему я научусь в уроке «Управление заданиями (bg, fg, jobs)»?
Освойте управление фоновыми и передними процессами: приостанавливайте, возобновляйте и просматривайте задания в сеансе оболочки. Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать DevOps Bootcamp?
Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Управление заданиями (bg, fg, jobs)»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке DevOps Bootcamp?
Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Управление заданиями (bg, fg, jobs)
- Подстановка и раскрытие шаблонов в оболочке
- Псевдонимы и пользовательские приглашения
- Функции оболочки и повторно используемые фрагменты