Читаем Операционная система UNIX полностью

В системе управления заданиями каждая команда (простая или составная), которую пользователь запускает со своего терминала, называется заданием. Все задания могут выполняться либо в текущем режиме, либо в фоновом режиме, либо быть приостановлены. Задание в каждом из этих состояний обладает рядом характеристик:

Состояние заданияХарактеристики
Выполняется в текущем режимеЗадание может считывать данные и выводить данные на терминал пользователя
Выполняется в фоновом режимеЗаданию запрещен ввод с терминала. Возможность вывода на терминал определяется дополнительными установками
ПриостановленоЗадание не выполняется

Каждое задание при запуске получает уникальный идентификатор, называемый номером задания, который используется в командах системы управления. Синтаксис номера задания, применяемый в командах:

%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

$

<p>Основные утилиты UNIX</p>

В предыдущих разделах мы использовали некоторые утилиты UNIX. Ниже приводятся краткие характеристики утилит, выпавших из поля нашего зрения. Более подробно с различными утилитами можно познакомиться в электронном справочнике man(1).

<p>Утилиты для работы с файлами</p>
Перейти на страницу:

Похожие книги