Шрифт:
28
Использование вызова setsid(2) справедливо для UNIX System V. Для BSD UNIX процесс должен последовательно создать группу, лидером которой он становится, а затем открыть управляющий терминал и с помощью команды ioctl(2)
В программе использовалось еще не обсуждавшаяся возможность системного журнала сообщений выполняющихся программ. Функцией генерации сообщений является syslog(3), отправляющая сообщение демону системного журнала syslogd(1M), который в свою очередь либо дописывает сообщения в системный журнал, либо выводит на их консоль, либо перенаправляет в соответствии со списком пользователей данной или удаленной системы. Конкретный пункт назначения определяется конфигурационным файлом (/etc/syslog.conf). Функция имеет определение:
Каждому сообщению
LOG_EMERG | Идентифицирует состояние "паники" в системе. Обычно рассылается всем пользователям. |
LOG_ALERT | Идентифицирует ненормальное состояние, которое должно быть исправлено немедленно, например, нарушение целостности системной базы данных. |
LOG_CRIT | Идентифицирует критическое событие, например, ошибку дискового устройства. |
LOG_ERR | Идентифицирует различные ошибки. |
LOG_WARNING | Идентифицирует предупреждения. |
LOG_NOTICE | Идентифицирует события, которые не являются ошибками, но требуют внимания. |
LOG_INFO | Идентифицирует информационные сообщения, как, например, использованное в приведенной программе. |
LOG_DEBUG | Идентифицирует сообщение, обычно используемое только при отладке программы. |
Последний тип сообщений подсказывает еще одну возможность использования системного журнала — для отладки программ, особенно неинтерактивных.
Строка
Функция openlog(3) позволяет определить ряд опций ведения журнала. Она имеет следующее определение: