Фоновые задания и управление заданиями
Запускайте команды, не занимая терминал. Изучите фоновые задания, управление заданиями с помощью jobs/fg/bg и сохранение процессов после выхода из системы с помощью nohup.
«Фоновые задания и управление заданиями» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.
Зачем нужны фоновые задания
Некоторые команды выполняются долго. Вместо блокировки терминала можно отправить их в фон и продолжить работу в той же оболочке.
Запуск в фоне
Добавьте & к команде, чтобы запустить её в фоне. Оболочка выведет номер задания и PID, а затем сразу вернёт приглашение.
sleep 300 &
[1] 4821Просмотр заданий
Команда jobs выводит фоновые и остановленные задания текущей оболочки; у каждого в квадратных скобках указан номер.
jobs
[1]+ Running sleep 300 &Приостановка задания
Нажмите Ctrl+Z, чтобы приостановить команду, выполняющуюся на переднем плане. Она остановится (но не завершится), и приглашение вернётся.
^Z
[1]+ Stopped nano notes.txtВозобновление в фоне
bg возобновляет последнее остановленное задание в фоне, поэтому оно продолжает выполняться, пока вы работаете.
bg
[1]+ nano notes.txt &Перевод на передний план
fg возвращает фоновое или остановленное задание на передний план. Чтобы выбрать конкретное задание, используйте fg %n.
fg %1 # bring job 1 to the foregroundОбращение к заданиям
Используйте %n, чтобы обращаться к заданию по номеру в таких командах, как fg, bg и kill.
kill %1 # terminate job number 1Задания и PID
Номера заданий — это локальные для оболочки обозначения, а PID действуют во всей системе. Используйте номера заданий внутри своей оболочки, а PID — с системными инструментами, например kill, из другого терминала.
Сохранение задания после выхода с nohup
Обычно фоновые задания завершаются при выходе из системы. nohup отсоединяет команду от терминала, поэтому она продолжает выполняться после вашего выхода.
nohup ./long_task.sh > out.log 2>&1 &Отсоединение задания
disown удаляет выполняющееся задание из таблицы заданий оболочки, поэтому при закрытии оболочки ему не будет отправлен сигнал разрыва соединения.
./task &
disown %1Инструменты вроде screen и tmux
Для длительных или удалённых сеансов терминальные мультиплексоры вроде tmux или screen сохраняют целые сеансы активными и позволяют подключиться к ним снова после разрыва соединения.
Быстрая проверка
Проверьте своё понимание.
Итоги
Вы изучили управление заданиями: запуск с помощью &, просмотр с помощью jobs, приостановка с помощью Ctrl+Z, перемещение с помощью bg/fg и %n, а также сохранение задач после выхода из системы с помощью nohup, disown или tmux/screen.
Часто задаваемые вопросы
Урок «Фоновые задания и управление заданиями» бесплатный?
Да — полный текст урока «Фоновые задания и управление заданиями» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.
Чему я научусь в уроке «Фоновые задания и управление заданиями»?
Запускайте команды, не занимая терминал. Изучите фоновые задания, управление заданиями с помощью jobs/fg/bg и сохранение процессов после выхода из системы с помощью nohup. Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать DevOps Bootcamp?
Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Фоновые задания и управление заданиями»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке DevOps Bootcamp?
Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Управление процессами (ps, top, kill)
- Перенаправление ввода и вывода (>, >>, <)
- Объединение команд в конвейер (|)
- Фоновые задания и управление заданиями