UNIX: разработка сетевых приложений
Шрифт:
2. Многие сетевые серверы запускаются суперсервером
3. За периодические процессы в системе отвечает демон
4. Если программа должна быть выполнена однократно в определенный момент времени в будущем, применяется команда
5. Демоны можно запускать с пользовательских
Поскольку у демона нет управляющего терминала, ему необходимы средства для вывода сообщений о некоторых событиях — это могут быть обычные информационные сообщения или экстренные сообщения об аварийных ситуациях, которые должен обрабатывать администратор. Использование функции
13.2. Демон syslogd
Системы Unix обычно запускают демон
1. Считывается файл конфигурации, обычно
2. Создается доменный сокет Unix и связывается с полным именем
3. Создается сокет UDP и связывается с портом 514 (служба
4. Открывается файл (устройство)
Демон
Более новые реализации отключают возможность создания сокета UDP, если она не задана администратором, поскольку если позволить кому угодно отправлять дейтаграммы UDP на этот порт (возможно, заполняя приемный буфер его сокета), это может привести к тому, что законные сообщения не будут получены (атака типа отказ в обслуживании) или переполнится файловая система из-за неограниченного роста журналов.
Между реализациями демона syslogd существуют различия. Например, доменные сокеты Unix используются Беркли-реализациями, а реализации System V используют потоковый драйвер (streams log driver). Различные реализации, происходящие от Беркли, используют для доменных сокетов Unix различные полные имена. Мы можем игнорировать все эти тонкости, если используем функцию syslog.
Мы можем отправлять сообщения о событиях для записи в журнал (log messages) демону
13.3. Функция syslog
Поскольку у демона нет управляющего терминала, он не может просто вызвать функцию
Хотя эта функция изначально разрабатывалась для BSD, в настоящее время она предоставляется большинством производителей систем Unix. Описание
Аргумент
Сообщения для журнала имеют значение
Таблица 13.1. Аргумент level журнальных сообщений
Level | Значение | Описание |
---|---|---|
LOG_EMERG | 0 | Система не может функционировать, экстренная ситуация (наивысший приоритет) |
LOG_ALERT | 1 | Следует немедленно принять меры, срочная ситуация |
LOG_CRIT | 2 | Критическая ситуация |
LOG_ERR | 3 | Состояние ошибки |
LOG_WARNING | 4 | Предупреждение |
LOG_NOTICE | 5 | Необычное, хотя и не ошибочное состояние (значение аргумента level по умолчанию) |
LOG_INFO | 6 | Информационное сообщение |
LOG_DEBUG | 7 | Отладочные сообщения (низший приоритет) |
Сообщения также содержат аргумент
Таблица 13.2. Аргумент facility журнальных сообщений
facility | Описание |
---|---|
LOG_AUTH | Сообщения no безопасности/авторизации |
LOG_AUTHPRIV | Сообщения по безопасности/авторизации (частные) |
LOG_CRON | Демон cron |
LOG_DAEMON | Системные демоны |
LOG_FTP | Демон FTP |
LOG_KERN | Сообщения ядра |
LOG_LOCAL0 | Локальное использование |
LOG_LOCAL1 | Локальное использование |
LOG_LOCAL2 | Локальное использование |
LOG_LOCAL3 | Локальное использование |
LOG_LOCAL4 | Локальное использование |
LOG_LOCAL5 | Локальное использование |
LOG_LOCAL6 | Локальное использование |
LOG_LOCAL7 | Локальное использование |
LOG_LPR | Демон принтера |
LOG_MAIL | Почтовая система |
LOG_NEWS | Система телеконференций |
LOG_SYSLOG | Внутренние сообщения системы syslog |
LOG_USER | Сообщения пользовательского уровня (значение аргумента facility по умолчанию) |
LOG_UUCP | Система UUCP |