Подробнее о Процессах

Если вообще возможно мониторить процессы и “просить” их прерваться, остановиться, продолжить и т.д., то эта глава как раз и охватывает эту тему. Чтобы понимать операции, которые мы собираемся производить здесь, полезно будет знать немного больше о процессах.

Дерево Процессов

Как и файлы, все процессы, которые запускаются в системе GNU/Linux, организованы в виде дерева. Корень этого дерева команда init. Каждый процесс имеет номер (свой PID, Process ID), а также номер своего родительского процесса (PPID, Parent Process ID). PID init равен 1, и такой же его PPID: init сам себе отец.

Сигналы

Каждый процесс в UNIX может реагировать на сигналы, посланные ему. Существует 64 различных сигнала, которые идентифицируются по своим номерам (начиная с 1) или по их символическим именам (SIGx, где x имя сигнала). 32 “старших” сигнала (от 33 до 64) являются сигналами реального времени и в этой главе мы их рассматривать не будем. Для каждого из этих сигналов у процесса может быть свой собственный behavior, исключая два сигнала: сигнал номер 9 (KILL), и сигнал номер 19 (STOP).

Сигнал 9 прерывает процесс безоговорочно, не давая времени на нормальное прекращение. Этот сигнал вы посылаете процессам, которые залипли или создают проблемы другим. Полный список доступных сигналов можно получить по вызову команды kill -l.