Если ваша система загружается в стиле 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 | Никакая программа |