За процесами можна вести спостереження і можна повідомляти їм, що треба завершити роботу, призупинитися, продовжити роботу тощо. Щоб зрозуміти приклади, які ми збираємося тут розглянути, буде корисним трохи більше дізнатися про ці процеси.
За аналогією з файлами всі процеси, що працюють у системі GNU/Linux, організовані у вигляді дерева. Коренем цього дерева є init - процес системного рівня, який запускається під час завантаження. Система присвоює номер кожному з процесів (PID, Process ID, ідентифікатор процесу), щоб унікально їх ідентифікувати. Процеси також успадковують ідентифікатори своїх батьківських процесів (PPID, Parent Process ID, ідентифікатор батьківського процесу). init сам собі є батьком - його PID і PPID дорівнює 1.
Кожен процес UNIX® може реагувати на відправлені йому сигнали. Існує 64 різних сигналів, які ідентифікуються за номерами (починаючи з 1
) або за символьними іменами (SIGx
, де x
- ім'я сигналу). 32 “старших” сигнали (від 33
до 64
) - це сигнали реального часу, їх розгляд виходить за рамки цієї глави. Для кожного з цих сигналів процес може визначити свою власну поведінку, за винятком двох сигналів: сигналу номер 9 (KILL
) і сигналу номер 19 (STOP
).
Сигнал 9
безповоротно знищує процес, не залишаючи йому часу на нормальне завершення роботи. Цей сигнал ви відправляєте процесу, який завіс чи викликає інші проблеми. Повний список сигналів можна вивести за допомогою команди kill -l.