Работы и процессы
Управление работами (job control)
это возможность, которую предоставляют
многие оболочки, включая (Bash и Tcsh). Управление работами
(прим. переводчика: job - работа в добрые старые времена
страшноватых IBM/360 переводилось как "задание", но лучше это не
тащить в сегодня)
позволяет управлять множеством команд или работ
одновременно. Прежде, чем вы закопаетесь значительно глубже,
следует поговорить о процессах.
Каждый раз, когда вы выполняете программу, вы начинаете то,
что известно, как процесс. Процесс - это название для
выполняемой программы. Команда ps выдает перечень имеющих место в
данный момент процессов. Вот пример:
/home/larry# ps
PID TT STAT TIME COMMAND
24 3 S 0:03 (bash)
161 3 R 0:00 ps
/home/larry#
PID (Process IDentificator), перечисленные в первой колонке,
это неповторяющиеся числа приписанные всем идущим процессам.
Последний столбец (COMMAND) дает имя выполняемой команды.
Здесь мы видим только процессы, которые инициировал Larry. (В
системе выполняется и много других процессов. Команда ``ps -aux''
может выдать перечень всех происходящих в данный момент
процессов).
В выведенном перечне указаны bash (это оболочка,
используемая Larry) и сама команда ps. Как вы видите, bash
выполняется параллельно с командой ps. bash выполнит ps, когда
Larry введет команду. После окончания ps (после того, как выдана
таблица процессов), управление возвращается к процессу bash,
который выдает на экран подсказок готовности к приему новых команд.
Выполняемый процесс известен shell как работа. Термины
процесс и работа взаимозаменяемы. Однако процесс обычно
воспринимается, как "работа", когда речь идет об управлении
работами (job control)-
свойстве shell, позволяющем уделять внимание нескольким
независимым работам.
В большинстве случаев пользователи выполняют в каждый момент
времени одну работу, ту которая соответствует последней переданной
shell команде. Однако, используя управление работами, вы можете
одновременно выполнять несколько работ, по необходимости
переключаясь с одной на другую. Какая от этого польза? Давайте
предположим, что вы редактируете текстовый файл и неожиданно
хотите прерваться и сделать что-то другое. С помощью управления
работами вы можете отложить редактирование и, вернувшись к
подсказке shell, начать какую-то другую работу. После этого
вы можете вернуться к редактированию, именно к тому
месту, где вы прервали редактирование. Это всего один пример.
Управление работами очень полезно на практике.