Книга: Операционная система UNIX
Система управления заданиями
Система управления заданиями
Командный интерпретатор может поддерживать управление заданиями. Для Bourne shell (/bin/sh), который мы рассматриваем, систему управления заданиями включает парный ему интерпретатор /bin/jsh. В остальном этот интерпретатор имеет те же возможности.
В системе управления заданиями каждая команда (простая или составная), которую пользователь запускает со своего терминала, называется заданием. Все задания могут выполняться либо в текущем режиме, либо в фоновом режиме, либо быть приостановлены. Задание в каждом из этих состояний обладает рядом характеристик:
Состояние задания | Характеристики |
---|---|
Выполняется в текущем режиме | Задание может считывать данные и выводить данные на терминал пользователя |
Выполняется в фоновом режиме | Заданию запрещен ввод с терминала. Возможность вывода на терминал определяется дополнительными установками |
Приостановлено | Задание не выполняется |
Каждое задание при запуске получает уникальный идентификатор, называемый номером задания, который используется в командах системы управления. Синтаксис номера задания, применяемый в командах:
%jobid
где jobid
может принимать следующие значения:
% или + |
Текущее задание — самое последнее запущенное или вновь запущенное задание |
- |
Предыдущее задание (по отношению к текущему) |
?строка |
Задание, для которого строка присутствует в командной строке запуска |
n | Задание с номером n |
pref |
Задание, на которое можно уникально указать префиксом pref , например, команда ls(1), запущенная в фоновом режиме, адресуется заданием %ls |
Система управления заданиями позволяет использовать следующие дополнительные команды:
bg [%jobid] |
Продолжает выполнение остановленного задания в фоновом режиме. Без параметра относится к текущему заданию. |
fg [%jobid] |
Продолжает выполнение остановленного задания в текущем режиме. Если задание jobid выполнялось в фоновом режиме, команда перемещает его в текущий режим. |
jobs [-p | -l] [%jobid ... ] |
Выводит информацию об остановленных и фоновых заданиях с указанными номерами. Если последний аргумент опущен, выводится информация обо всех остановленных и фоновых заданиях. Приведенные ниже опции изменяют формат вывода: -l Вывести идентификатор группы процессов и рабочий каталог. -р Вывести только идентификатор группы процессов. |
kill [-signo] %jobid |
Обеспечивает те же возможности, что и команда kill(1), но по отношению к заданиям. |
stop %jobid |
Останавливает выполнения фонового задания. |
wait %jobid |
Ожидает завершения выполнения задания jobid и возвращает его код возврата. |
Приведенный ниже пример иллюстрирует использование команд управления заданиями и не нуждается в комментариях:
$ inf.j &
[1] 9112
$ comm1 &
[2] 9113
$ jobs
[1] - Running inf.j
[2] + Running comm1
$ stop %1
$ jobs
[1] - Stopped (signal) inf.j
[2] + Running comm1
$ stop %%
$ jobs -1
[1] - 9112 Stopped (signal) inf.j (wd: /home/andy/SH//JOB)
[2] + 9113 Stopped (signal) comm1 (wd: /home/andy/SH/JOB)
$ bg %1
[1] inf.j &
$ jobs
[1] + Running inf.j
[2] - Stopped (signal) comm1
$ kill %1 %2
$ jobs
[1] + Done(208) inf.j
[2] - Done (208) comm1
$
- Глава 20 Консольные инструменты управления пакетами
- Управления карточками экспресс–оплаты
- Природа Web-элементов управления
- Основные "рычаги" управления производительностью
- Система безопасности InterBase
- Что делать, если при установке принтера появляется сообщение Невозможно завершение операции. Подсистема печати недоступн...
- Категорийный менеджмент. Курс управления ассортиментом в рознице
- 7 Система Цикл: долгосрочные цели
- 3. Система конкурентных продаж (продажи по методу КЛИН)
- 1. Системы управления базами данных
- 3.4 Сетевая файловая система
- 3.7 Система Microsoft Exchange 2000 и NAS