Команду на переднем плане можно поставить на паузу и вернуть, не начиная её заново.
Ctrl+Z, jobs и fg
Запусти sleep 700 — приглашение пропадёт. Нажми Ctrl+Z и выполни jobs -l. Потом верни ожидание командой fg и прерви его клавишами Ctrl+C.
Сначала предположи
Что станет с sleep 700 после Ctrl+Z?
Теперь начни упражнение, выполни команду и сверь прогноз с выводом.
Ctrl+Z посылает команде переднего плана сигнал остановки. Процесс замирает в состоянии T, как --blog в прошлом уроке, а оболочка возвращает приглашение. Задание остаётся в таблице, и его можно продолжить:
| Команда | Что делает с заданием |
|---|---|
fg |
продолжает на переднем плане, терминал снова занят |
bg |
продолжает в фоне, приглашение остаётся у тебя |
Ctrl+C прерывает команду переднего плана, и процесс завершается. Команду переднего плана ps отмечает знаком + в столбце STAT: у ps в прошлых выводах стояло R+.
Долгая выгрузка заняла терминал. Ты нажал Ctrl+Z, затем выполнил bg. Что покажет jobs?
-
Терминал снова занимает
fg. Послеbgзадание работает в фоне, и приглашение остаётся у тебя. -
bgпродолжает остановленное задание в фоне, иjobsпоказывает Running. Stopped осталось бы после одного Ctrl+Z. -
bgничего не перезапускает: задание остаётся в таблице с тем же номером и PID.
Ctrl+Z ставит выгрузку на паузу, а bg продолжает тот же процесс в фоне. Задание снова Running, терминал свободен.