Европейский Университет в Санкт-Петербурге
Опубликован: 10.10.2005 | Доступ: свободный | Студентов: 1716 / 298 | Оценка: 4.30 / 3.85 | Длительность: 16:22:00
ISBN: 978-5-94774-820-8
Лекция 10:

Командные процессоры

< Лекция 9 || Лекция 10: 123456789

Работа с заданиями

Работая в режиме командной строки, вы можете запустить несколько программ одновременно, например, организовав конвейер. Совокупность таких одновременно запущенных из среды командного процессора процессов называется заданием .

Задание можно приостановить, потребовать его продолжения или завершить его. Задание может выполняться как в фоновом режиме, так и в интерактивном. Для управления заданиями большинство командных процессоров (точнее, все кроме Bourne Shell) имеют встроенные команды: jobs, fg, bg.

Посмотреть список запущенных ранее заданий можно с помощью команды jobs. Для вывода идентификаторов (PID) процессов, входящих в задание, следует использовать команду

jobs -l

Например, запускаем программу find для поиска файлов *.gif, список найденных файлов перенаправляем в ~/gifs (т.е. наш домашний каталог, файл gifs ):

find / -name "*.gif" > ~/gifs &
[1] 33151
jobs -l
[1] + 33151 Running	    find / -name "*.gif" > ~/gifs &

То, что в квадратных скобках [ ], и есть номер задания. Задания имеют уникальные номера в пределах текущего сеанса работы с shell-ом. Задание можно перевести в интерактивный режим командой fg (foreground):

fg %1 	# %1 - номер задания.

Теперь задание выполняется в интерактивном режиме. Можно остановить его, переведя в режим suspend (sleeping, спящий):

<Сtrl-z>
[1] + Stopped    find / -name "*.gif" > ~/gifs &

Теперь можно продолжить выполнение задания в фоне командой bg (background):

bg %1

С помощью команд управления заданиями можно переключать программы между интерактивным и фоновым режимом выполнения. Если вы случайно забыли поставить знак & в конце команды, но собирались запустить ее в фоновом режиме, еще не все потеряно! Следует нажать Ctrl-Z, чтобы "усыпить" программу, а затем запустить задание в фоновом режиме с помощью команды bg.

Команды bg и fg могут принимать разные аргументы, но знак %, за которым следует число, в любом командном процессоре интерпретируется как ссылка на номер задания.

< Лекция 9 || Лекция 10: 123456789