Введение в Unix

Обработка команд в режиме заднего плана (background)


Обычно команды выполняются в режиме переднего плана (foreground), т.е. "пока вы ждете". Однако, если во время выполнения некоторой команды вы хотите выполнять другие команды, то эту (первую) команду можно выполнить в режиме background:

$ nroff doc & 2042 $.

Об этом говорит завершающий знак &.

Система UNIX создает процесс, который выполняется независимо от командного интерпретатора. Ответ 2042 - это идентификатор этого процесса (PID). Лучше перенаправлять стандартный вывод процесса заднего плана в файл (из-за опасности совмещения вывода "переднего" и "заднего" плана на экране).

$ nroff doc > doc.format & 2042 $ или

$ nroff doc | lpr & 2042 $

Чтобы выяснить состояние процесса заднего плана, надо использовать команду ps (process status):

$ ps PID TTY TIME CMD 2036 02 0:05 sh (login - процесс терм.2)

2042 02 0:02 nroff doc (background)

2043 02 0:01 ps (cat pS)

2050 08 0:03 sh (login - процесс терм.8).

Это показывает, что nroff еще не закончилась. Ключи l и a в команде ps могут дать больше информации об активных процессах:

-l - информация о родителе, адрес, приоритет и т.д.

-a - о всех процессах системы.



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