Freebsd процеси, демони і сигнали, xnix, adminstuff

Кожна програма (в тому числі і демон), запущена на BSD, породжує як мінімум один процес.

Кожен процес має унікальний номер PID. Процеси, які не потребують інтерактивного спілкування з користувачем в консолі і працюють у фоновому режимі, називаються демонами. Зазвичай ім'я демона закінчується на 'd', наприклад, named.







Всім процесам (в тому числі і демонам) за допомогою команди kill можна посилати повідомлення. Повідомлення можуть бути наступні (імена сигналів можуть бути без префікса SIG):

SIGSEGV порушення сегментації пам'яті
SIGALRM повідомлення після закінчення певного періоду часу
SIGTERM повідомлення м'якого завершення процесу (може бути проігноровано процесом)






SIGKILL повідомлення жорсткого завершення процесу
SIGHUP повідомлення зазвичай використовується для поновлення установок (дивіться доку до додатка)
SIGUSR1 (дивіться доку до додатка)
SIGUSR2 (дивіться доку до додатка)

Приклад використання kill для посилки повідомлення (оновлення змін конфігурації демона inetd. Команда grep (1) використовується для пошуку по заданому рядку в вихідному потоці. Ця команда запускається під звичайним користувачем, а inetd (8) під root, тому ps (1) повинна бути присутній параметр ax):

Гарантоване знищення процесу за його ідентифікатором (-9 означає сигнал KILL):

Гарантоване знищення процесу за його ідентифікатором (опція -s дозволяє використовувати імена сигналів):

Нагадаю, що ідентифікатор процесу можна дізнатися командою ps:

Для визначення завантаження системи процесами зручно використовувати програму top. Крім завантаження процесора, показується утилізація пам'яті.

Є також зручна команда killall. яка видаляє процес по імені. Ось так надсилається сигнал SIGHUP демона syslogd:







Схожі статті