Встроенные команды управления заданиями
-
bg -
bg [jobspec ...]
Возобновляет выполнение каждого приостановленного задания jobspec в фоновом режиме, как если бы оно было запущено с помощью «&». Если jobspec не указан, оболочка использует своё представление о текущем задании.
bgвозвращает ноль, кроме случаев, когда команда выполняется при отключённом управлении заданиями или, при включённом управлении заданиями, задание jobspec не найдено либо было запущено без управления заданиями. -
fg -
fg [jobspec]
Возобновляет выполнение задания jobspec на переднем плане и делает его текущим заданием. Если jobspec не указан,
fgвозобновляет текущее задание. Возвращается код завершения команды, переведённой на передний план, либо ненулевой код, если команда выполняется при отключённом управлении заданиями или, при включённом управлении заданиями, jobspec не указывает на допустимое задание либо указывает на задание, запущенное без управления заданиями. -
jobs -
jobs [-lnprs] [jobspec] jobs -x command [arguments]
Первая форма выводит список активных заданий. Параметры имеют следующие значения:
-l-
Выводить идентификаторы процессов (ID) в дополнение к обычной информации.
-n-
Выводить информацию только о заданиях, состояние которых изменилось с момента последнего уведомления пользователя об их состоянии.
-p-
Выводить только идентификатор процесса (ID) ведущего процесса группы процессов задания.
-r-
Выводить только выполняющиеся задания.
-sВыводить только остановленные задания.
Если указан jobspec,
jobsограничивает вывод информацией об этом задании. Если jobspec не указан,jobsвыводит состояние всех заданий. Возвращается ноль, если не обнаружен недопустимый параметр или не указан недопустимый jobspec.Если указан параметр -x,
jobsзаменяет все найденные в command или arguments значения jobspec соответствующими идентификаторами групп процессов (ID) и выполняет command, передавая ему аргументы argument, а затем возвращает код завершения команды. -
kill -
kill [-s sigspec] [-n signum] [-sigspec] id [...] kill -l|-L [exit_status]
Посылает сигнал, заданный параметром sigspec или signum, процессам, указанным каждым значением id. Значение id может быть спецификацией задания jobspec или идентификатором процесса (ID) pid. sigspec — это название сигнала без учёта регистра, например
SIGINT(с префиксомSIGили без него), либо номер сигнала; signum — номер сигнала. Если параметры sigspec и signum не указаны,killпосылаетSIGTERM.Параметр -l выводит список названий сигналов. Если вместе с -l указаны аргументы,
killвыводит названия сигналов, соответствующих этим аргументам, и возвращает ноль. exit_status — это число, задающее номер сигнала или код завершения процесса, завершившегося по сигналу; если оно указано,killвыводит название сигнала, вызвавшего завершение процесса.killпредполагает, что коды завершения процессов больше 128; любое меньшее значение считается номером сигнала. Параметр -L эквивалентен параметру -l.Возвращается ноль, если успешно послан хотя бы один сигнал, и ненулевое значение, если произошла ошибка или обнаружен недопустимый параметр.
-
wait -
wait [-fn] [-p varname] [id ...]
Ожидает завершения дочернего процесса, указанного каждым значением id, и возвращает код завершения последнего id. Значение id может быть идентификатором процесса (ID) pid или спецификацией задания jobspec; если указана спецификация задания,
waitожидает завершения всех процессов в задании.Если параметры и значения id не указаны,
waitожидает завершения всех выполняющихся фоновых заданий и последней подстановки процесса, если идентификатор её процесса совпадает с $!, и возвращает ноль.Если указан параметр -n,
waitожидает завершения любого одного из значений id или, если значения id не указаны, любого задания или подстановки процесса и возвращает его код завершения. Если ни одно из указанных значений id не является дочерним процессом оболочки или, если аргументы не указаны, у оболочки нет дочерних процессов, завершения которых она ещё ожидает, код завершения равен 127.Если указан параметр -p,
waitприсваивает переменной varname, имя которой указано в аргументе параметра, идентификатор процесса или задания, для которого возвращается код завершения. Переменная не может быть доступна только для чтения; перед присваиванием её значение будет удалено. Этот параметр полезен только при использовании с параметром -n.Если управление заданиями включено и указан параметр -f,
waitожидает завершения каждого id перед возвратом его кода, а не возвращает управление при изменении его состояния.Если ни одно из значений id не указывает на один из активных дочерних процессов оболочки, код завершения равен 127. Если
waitпрерывается сигналом, любая переменная varname останется неустановленной, а код завершения будет больше 128, как описано выше (см. раздел Сигналы). В противном случае возвращается код завершения последнего id. -
disown -
disown [-ar] [-h] [id ...]
Если параметры не указаны, удаляет каждое значение id из таблицы активных заданий. Значение id может быть спецификацией задания jobspec или идентификатором процесса (ID) pid; если id — это pid,
disownиспользует задание, содержащее pid, в качестве jobspec.Если указан параметр -h,
disownне удаляет из таблицы заданий задания, соответствующие каждомуid, а помечает их, чтобы оболочка не посылалаSIGHUPзаданию, если оболочка получитSIGHUP.Если id не указан, параметр -a означает, что нужно удалить или пометить все задания; параметр -r без аргумента id удаляет или помечает выполняющиеся задания. Если id не указан и не указан ни параметр -a, ни параметр -r,
disownудаляет или помечает текущее задание.Возвращаемое значение равно 0, если значение id не указывает на допустимое задание.
-
suspend -
suspend [-f]
Приостанавливает выполнение этой оболочки до получения сигнала
SIGCONT. Оболочку входа в систему или оболочку с отключённым управлением заданиями нельзя приостановить; параметр -f отменяет это ограничение и принудительно приостанавливает оболочку. Возвращаемое значение равно 0, если оболочка не является оболочкой входа в систему или управление заданиями включено, либо если указан параметр -f.
Когда управление заданиями неактивно, встроенные команды kill и wait не принимают аргументы jobspec. Вместо них необходимо указывать идентификаторы процессов (ID).
Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
Licensed under the GNU Free Documentation License.
https://www.gnu.org/software/bash/manual/html_node/Job-Control-Builtins.html