LINUX.ORG.RU

syslog, ядро и journald

 , ,


0

1

Здрасти

Программы сыпят логи в stdout, stderr, syslog() и указанные в конфигах файлы. В случае с stdout и stderr понятно, journald перехватывает это. В случае с syslog, journald создаёт сокет файл (/run/systemd/journal/dev-log и символическую ссылку на него - /dev/log). Как я понял, некоторые программисты указывают, чтобы логи сыпались в /dev/log, в следствии чего они попадают journald через сокет. Но в системных вызовах я не разбираюсь, поэтому не могу понять. Предположим, в программе есть вызов syslog(). Ядро получает логи. Как оно понимает, какому процессу их отдать? Или оно тоже направляет в файл /dev/log?


syslog(3) - это не системный вызов, это библиотечная функция из glibc.

Программисты не указывают, чтобы логи сыпались в /dev/log, они просто вызывают syslog(3), А syslog(3) в свою очередь пишет в /dev/log.

Системный вызов syslog(2) тоже есть, но делает он совершенно другое, нежели syslog(3).

bigbit ★★★★★ ()