Уровень emerg

Сообщения о фатальных ошибках (уровень emerg) рассылаются всем зарегистрированным пользователям с помощью команды write. Кроме того, демон syslogd переадресует эти сообщения компьютеру central, файл /etc/syslog.conf которого должен быть настроен таким образом, чтобы сообщения уровня emerg обрабатывались явно, иначе они будут проигнорированы.

Последняя запись в листинге направляет все сообщения уровня crit и выше от средств uucp и news в файл /var/log/spooler. Для удобства туда же можно включить и сообщения подсистемы печати:

ucp,news,lpr.crit /var/log/spooler

После модификации файла /etc/syslog. conf необходимо сообщить демону syslogd об изменениях, послав ему сигнал HUP. Проще всего сделать это командой killall - HUP syslogd. Она заставит демон повторно прочитать свой конфигурационный файл. Если в файле /etc/syslog. conf указан новый журнальный файл, то после получения сигнала HUP этот файл будет создан. Впрочем, в некоторых версиях UNIX требуется, чтобы журнальный файл существовал до того, как демон syslogd обратится к нему. В таких случаях файл необходимо создавать самостоятельно.

Неопытных пользователей названия команд kill и killall могут ввести в заблуждение. Их следовало бы назвать signal и signalall, поскольку они посылают процессам сигналы. Разница между ними в том, что команда kill требует указания идентификатора процесса, а команда killall в качестве аргумента принимает имя процесса и посылает сигнал всем процессам с таким именем.

Итак, команда kill посылает указанному процессу сигнал. Если конкретный сигнал не указан, используется сигнал TERM. Сигналы не передаются процессам напрямую. Сначала они проходят через ядро, которое находит соответствующий процесс и прерывает его выполнение. Если обработчик прерываний процесса понимает полученный сигнал, он выполняет заданный код. Например, если включена обработка сигнала HUP, процесс может повторно прочитать конфигурационный файл. Если же указанный сигнал не поддерживается или поступает стандартный сигнал TERM, процесс освобождает все выделенные ресурсы, уничтожает подпроцессы (дочерние процессы), после чего завершается. Многие пользователи имеют привычку завершать работу процессов командой kill -KILL или kill -9. Это вредная привычка! Всегда вводите сначала команду kill -TERM (или просто kill, поскольку сигнал TERM посылается по умолчанию). Объясним почему. Когда вводится команда kill -9, ядро не прерывает выполнение процесса. Вместо этого оно принудительно освобождает все ресурсы процесса, после чего уничтожает его. Если у процесса есть подпроцессы, они превратятся в "зомби" (в выводе команды ps помечаются как defunct). В ядре реализован специальный механизм, который освобождает ресурсы процессов-"зомби" и делает эти процессы потомками демона init (идентификатор процесса равен 1). Таким образом, влияние "зомби" на систему сводится к минимуму. Однако не следует забывать, что процессы-"зомби" исчезают только при перезагрузке системы, занимая место в таблице процессов. Игнорирование "зомби" может привести к превышению лимита на число процессов.

Мы не хотим сказать, что команда kill -9 не нужна. Просто пользуйтесь ею лишь в крайнем случае.


Ведете ли вы блог?

Да
Нет
Планирую


Результаты опроса

Новостной блок