Когда заданий несколько, к нужному обращаются по номеру. Номер пишут со знаком процента.
fg %2 возвращает на передний план задание 2, bg %1 продолжает в фоне задание 1. Без номера fg и bg берут текущее задание — то, что jobs помечает знаком +. Знак - стоит у предыдущего.
fg и bg поймут номер и без %, а другие команды примут такое число за PID. kill, который посылает процессам сигналы, обратится по kill 1 к процессу 1 — это systemd, и получит отказ, а kill %1 завершит задание 1. Поэтому номер задания пишут с % всегда.
Какой командой продолжить в фоне остановленное задание?
$ jobs -l
[1]- 2034 Running sleep 600 &
[2]+ 2041 Stopped sleep 700
-
После
%пишут номер задания, а 2041 — PID. Задания 2041 нет,bgнапечатаетno such job. -
Задание 1 и так Running. Остановлено задание 2:
[2]+ … Stopped. -
fgпродолжит задание 2 на переднем плане и займёт терминал. В фоне продолжаетbg.
Остановлено задание 2, и bg %2 продолжает его в фоне. % ставят перед номером задания, PID пишут без него.
Главное в шаге
-
Номер задания пишут с
%: число без негоkillи другие команды примут за PID. -
fg %Nиbg %Nпродолжают задание N на переднем плане или в фоне, без номера — текущее, с+.