Организация UNIX-систем и ОС Solaris

       

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


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

Задание можно приостановить, потребовать его продолжения или завершить его. Задание может выполняться как в фоновом режиме, так и в интерактивном. Для управления заданиями большинство командных процессоров (точнее, все кроме 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 могут принимать разные аргументы, но знак %, за которым следует число, в любом командном процессоре интерпретируется как ссылка на номер задания.



Содержание раздела