Инсталляция Linux и первые шаги


Работа в фоне и ликвидация работ


Давайте начнем с простого примера. Команда yes - вроде бы

бесполезная команда, посылающая бесконечный поток "y" на

стандартный выход. (Но это очень полезно. Если вы направите через

конвейер эти "y" на вход другой команды, которая требует

ответов yes и "no" на вопросы, поток "y" даст подтверждение

на все вопросы). Попробуйте.

/home/larry# yes

y

y

y

y

y

Это закончится в бесконечности. Вы можете убить процесс,

нажав клавиши прерывания; обычно это ctrl-C. Чтобы нас больше

не раздражал поток нескончаемых "y", перенаправим его в

/dev/null. Как вы помните, /dev/null

выступает в качестве "черной

дыры" для данных. В ней исчезают бесследно любые данные.

/home/larry# yes > /dev/null

Ох, теперь намного лучше. Ничего не печатается, но и подсказка

shell не появляется. Это потому, что программа продолжает

работать, посылать "y" в /dev/null. Снова нажмите клавиши

прерывания, чтобы прекратить это.

Давайте предположим, что мы хотим, чтобы команда yes

продолжала работать, но также хотим получить обратно подсказку

shell, чтобы выполнять другие работы. Мы можем перевести команду

yes в фоновый режим, что позволит ей выполняться, но без выхода на

взаимодействие с пользователем.

Чтобы переместить процесс в фоновый режим, необходимо после

команды символ ``&''.

/home/larry# yes > /dev/null &;

[1] 164

/home/larry#

Вы видите, что мы вновь получили подсказку. Но что

значит ``1 164''? И выполняется ли команда yes на самом деле?

``1'' представляет номер работы для программы yes. Shell

приписывает номер каждой выполняемой работе. Поскольку "yes" - одна

единственная работа, которая в данный момент выполняется, ей

присвоен номер 1. ``164'' - идентификатор процесса (PID); это

номер, присвоенный системой работе. Любой из этих номеров можно

использовать при обращении к работе, как это будет показано в

дальнейшем.

Теперь мы имеем выполняемый процесс yes в фоновом режиме,




Начало  Назад  Вперед