Spec-Zone.ru › Bash

Встроенные команды управления заданиями

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API