Если ваша система загружается в стиле System V, то сценарий запуска демона — это /etc/rc.d/init.d/syslog
. Как обычно, запустить демон самостоятельно вы можете с помощью команды
/etc/rc.d/init.d/syslog start
а остановить — /etc/rc.d/init.d/syslog.stop
.
Автоматический запуск системы syslog можно отключить или включить при помощи графического конфигуратора (setup для дистрибутива Red Hal, drakxservices для Mandrake, system-config-services для Fedora Core).
В Red Hat-совместимых дистрибутивах демон syslogd устанавливается из пакета sysklogd, в состав которого входит также демон klogd, принимающий сообщения ядра и отправляющий их на обработку демону syslogd.
Как и всякий демон, syslogd управляется конфигурационным файлом. По умолчанию это файл /etc/syslog.conf
, однако ничто не мешает назвать его как угодно, а потом запускать syslogd с ключом -f /path/to/config.file
. Об остальных немногочисленных ключах можно узнать но команде man syslogd
.
По сигналу HUP демон закрывает все журнальные файлы, перечитывает конфигурационный файл и возобновляет процесс протоколирования. Чтобы изменения в конфигурационном файле вступили в силу, нужно послать демону syslogd сигнал HUP. Например, так:
$ kill -HUP `cat /var/run/syslogd.pid`
9.3.1. Конфигурационный файл /etc/syslog.conf
Это простой текстовый файл, каждая непустая и незакомментированная (знак комментария — #) строка которого имеет следующий формат:
<селектор>[;<селектор>...] <действие>
Селектор представляет собой правило отбора сообщений, а действие — указание, что с отобранными сообщениями дальше делать. Например, строка
user.* -/var/log/user.log
диктует перенаправление сообщений от пользовательских программ в файл /var/log/user.log
.
Действиями могут быть:
♦ /абсолютное/имя/файла — записать сообщение в файл. Префикс «-» перед именем файла запрещает синхронизировать файл после каждой записи. По умолчанию syslogd после записи каждой строки выполняет вызов
♦ @имя_машины —переслать сообщение демону syslogd, работающему на указанной машине. Имя должно быть известно DNS или прописано в /etc/hosts
; в противном случае следует писать @IP-адрес.
♦ /dev/console
— вывести сообщение на консоль.
♦ *
— вывести сообщение на экраны всех работающих в данный момент пользователей.
Несколько селекторов, отбирающих сообщения разной категории, можно группировать, разделяя точкой с запятой, для того, чтобы над ними было выполнено одно и то же действие. Действия группировать нельзя. Чтобы направить одни и те же сообщения и в файл, и на удаленный компьютер, нужно вписать в конфигурационный файл две строки с одинаковыми селекторами.
Селектор, в свою очередь, имеет формат:
<средство> [, средство2..,] . <уровень_серьезности>
Средство (facility) — это категория программы, пославшей сообщение. Категория выбирается из списка ключевых слов, приведенного в таблице 9.2.
Категории программ, ведущих протокол Таблица 9.2
Ключевое слово | Назначение программы, пославшей сообщение |
---|---|
auth authpriv security | Программы, отслеживающие регистрацию пользователей в системе и повышение привилегий пользователи (login, su) |
authpriv | Программы, отслеживающие повышение привилегий пользователя (команда su) |
cron | Выполнение заданий по расписанию (cron и at) |
daemon | Системные демоны, для которых не нашлось более подходящей категории |
kern | Ядро |
lpr | Подсистема печати |
Почтовые программы | |
news | Подсистема, обслуживающая телеконференции Usenet |
uucp | Система UUCP |
syslog | Сам демон syslogd |
user | Все остальные программы |
* | Любая программа |
none | Никакая программа |