Linux Labs

Пользователи, права, процессы / Ступень 11 из 13

Фоновые задания и терминал

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 2 из 7 · на машине · 6 мин

Фон и номер задания

Знак & отправил команду в фон. В этом шаге — что оболочка напечатала после запуска и где теперь искать команду.

Обычно оболочка ждёт, пока команда закончится, и только потом печатает приглашение: команда работает на переднем плане. С & в конце строки команда уходит в фон — оболочка запускает её и сразу ждёт следующую.

Команду, которую оболочка запустила и за которой следит, называют заданием. В строке [1] 1028 первое число — номер задания, второе — PID процесса. Номер задания действует в этой оболочке: у каждой оболочки своя таблица заданий.

jobs печатает задания этой оболочки: номер, состояние и команду. Running значит, что задание работает. jobs -l добавляет к каждому заданию PID, а PID последней фоновой команды оболочка хранит в переменной $!:

bash
jobs -l
echo $!
Заметка

Задания живут вместе со своей оболочкой. Если оборвётся подключение к серверу, оболочка получит сигнал отбоя и разошлёт его своим заданиям — обычно они завершаются. Работу, которая должна пережить выход, запускают службой.

Проверь себя 1 вопрос

В том же терминале ты запустил новую оболочку командой bash и выполнил в ней jobs. Что он покажет про sleep 600 &?

  • Таблица заданий своя у каждой оболочки, и у новой она пуста. Процесс sleep 600 при этом виден в ps.

  • Новая оболочка задание не трогает: sleep 600 продолжает работать, ps покажет его в состоянии S.

  • jobs не сообщает об ошибке: в новой оболочке заданий нет, и он печатает пустую строку.

У каждой оболочки своя таблица заданий: новая оболочка не знает о sleep 600 &, хотя процесс работает и виден в ps. Вернуться в первую оболочку — exit.

Главное в шаге

  • & в конце строки запускает команду в фоне, и приглашение возвращается сразу.
  • [1] 1028 — номер задания и PID процесса; задания этой оболочки печатает jobs, с PID — jobs -l.
  • Таблица заданий своя у каждой оболочки, а процессы всей машины видны через ps.
Ubuntu 24.04
Загрузка…