Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
chast2.doc
Скачиваний:
11
Добавлен:
06.11.2018
Размер:
523.26 Кб
Скачать

Временная приостановка процесса

Иногда требуется не выгружать программы, а приостановить их выполнение. Для этого служит блокировка процесса. Чтобы приостановить программу, ему нужно отправить сигнал STOP или ТSТР. Первый, например, можно получить командой kill. Нажатие клавиш Сtrl+Z обычно приводит к отправке сигнала TSTP непосредственно активному процессу (или как иногда еще принято говорить процессу переднего плана). Для остановки некоторых программ можно также использовать специальные команды, например,:suspend, в случае выполнения команды shе11.

После этого программа приостановится (блокируется), и контроль вернется тому командному интерпретатору, из которого была вызвана программа. Там можно задавать команды обычным способом.

Список заданий: jobs

Синтаксис: jobs

Команда jobs показывает статус всех работающих процессов, запущенных из текущего shell. В начале каждой строки стоит номер, идентифицирующий процесс (например, [1]). После этого указывается состояния процесса: для фонового процесса, или процесса заднего плана, - running, для приостановленных процессов - suspended. В конце строки стоит та команда shell, которая запустила программу.

Знак + обозначает задание, обрабатываемое в данный момент, знак – отмечает следующее подлежащее выполнению задание.

Фоновый режим работы

Для того чтобы выполнить команду в фоновом режиме, необходимо в конце ее поставить амперсанд. При этом система выдает на экран номер задания пользователя и системный номер процесса (PID). Номер задания, заключенный в квадратные скобки, – это номер, по которому пользователь может обращаться к заданию. В следующем примере в фоновый режим переводится команда печати файла mydata:

$ lpr mydata&

[1] 272

$

В фоновый режим можно переводить несколько команд. Каждая из них классифицируется как задание и получает имя и номер задания. Команда jоЬs позволяет получить список всех заданий, выполняемых в фоновом режиме. В приведенном ниже примере в фоновый режим переводятся две команды. Затем с помощью команды jоЬs выдается список этих заданий с указанием, какое из них выполняется в данный момент.

Первый процесс выводит на печать файл intro. Второй процесс копирует все файлы с расширением .С из текущего каталога в файл myprog.

$ lpr intro&

[1] 547

$ cat *.c >myprog

[2] 548

$ jobs

[1] + Running lpr intro

[2] – Running cat *.c>myprog

$

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

Перевод задания на передний план: fg

Синтаксис: fg [job]

Команда fg переводит блокированный или работающий в фоновом режиме процесс с номером job на передний план (т.е. делает его активным). В результате данной программе будут передаваться все вводимые с клавиатуры данные. Это состояние сохранится до тех пор, пока процесс не будет завершен или вновь приостановлен. Надо указать предназначенный для запуска процесс, поставив перед его номером значок %.

Например:

$ fg %2

Символ % может использоваться и в других командах, в частности – KILL. Символ %+ указывает на задание, помеченное +, а символ %- – на задание, помеченное знаком -.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]