70 lines
2.6 KiB
Plaintext
70 lines
2.6 KiB
Plaintext
|
This is just syslogd and the test programs now. syslog() is in libc 4.2
|
||
|
syslogd has been changed to use /proc/kmsg for kernel messages. It also
|
||
|
avoids making any terminal it opens its controlling terminal. Otherwise
|
||
|
we have a dodgy race condition between processes connecting to terminals
|
||
|
which can result in the terminal having the wrong group at the wrong time.
|
||
|
The syslog() in libc 4.2 needs changing to use O_NOCTTY on its opens as
|
||
|
well.
|
||
|
|
||
|
Mike Jagdis Internet: jaggy@purplet.demon.co.uk
|
||
|
FidoNet: Mike Jagdis, 2:252/305
|
||
|
|
||
|
---------------------------------------------------------------------------
|
||
|
|
||
|
Syslogd and Syslog.o
|
||
|
|
||
|
These are the syslogd and syslog ported from 4.3BSD (that's the new one with
|
||
|
the *very* flexible config file).
|
||
|
|
||
|
Syslogd is essentially unchanged from the 4.3BSD, with the exception that
|
||
|
*nothing* is ever logged to the console (BAD thing to do on a UNIXpc). You
|
||
|
can configure it (via /etc/syslog.conf) to log messages in different
|
||
|
logfiles (depending upon the sender's facility code and the priority), log
|
||
|
to users' terminals (same dependancies), and if things get real bad, it can
|
||
|
do a wall (write-all; same dependancies).
|
||
|
|
||
|
Syslog is really only modified in that it uses UDP datagrams because I had
|
||
|
no luck at all using UNIX domain sockets on the 3B1. See syslog.h for
|
||
|
facility codes and priorities that can be used.
|
||
|
|
||
|
|
||
|
BUGS:
|
||
|
Messages from facilities LOG_KERN, LOG_USER, and LOG_PRT never can be
|
||
|
wall-ed, no matter how high the priority. I'm still trying to decide if
|
||
|
this is a bug or a feature. :-)
|
||
|
|
||
|
|
||
|
ALSO INCLUDED:
|
||
|
|
||
|
Syslog_test, sendlog (to use from shell scripts) and logger (for use in
|
||
|
shell script also).
|
||
|
|
||
|
NEEDED:
|
||
|
|
||
|
The resolver routines in libresolv.a are not needed, but allow you to log to
|
||
|
hosts not present in /etc/hosts and to accept logging from same.
|
||
|
|
||
|
-----------------------------------------------------------------------
|
||
|
|
||
|
Fixed up UNIX domain socket code, added Linux specific code to read messages
|
||
|
from the kernel.
|
||
|
|
||
|
The #ifdefs are now :-
|
||
|
|
||
|
SYSLOG_INET listen on a UDP socket (syslogd)
|
||
|
log via UDP (syslog library call)
|
||
|
|
||
|
SYSLOG_UNIXAF listen on a UNIX domain socker (syslogd)
|
||
|
log via UNIX domain (syslogd library)
|
||
|
|
||
|
SYSLOG_KERNEL fork a second copy to read kernel messages using
|
||
|
syslog system call.
|
||
|
|
||
|
syslogd should be built with one or more of these flags, libsyslog.a should
|
||
|
be built with SYSLOG_INET or SYSLOG_UNIXAF, SYSLOG_INET is used in preference
|
||
|
to SYSLOG_UNIXAF.
|
||
|
|
||
|
readlog is a program which reads from the kernel and records the messages
|
||
|
it finds in syslogd via the normal library call interface, it can be run
|
||
|
instead of building syslogd with SYSLOG_KERNEL.
|