courierlogger — Courier syslog wrapper
courierlogger
[-name=title
] [-facility=subsystem
] [-pid=filename
] [-user=user
] [-group=group
] [-droproot] [[[-respawn] [-start]
program
[argument...]] | [-stop] | [-restart]]
courierlogger is a wrapper that captures another process's error messages, and forwards them to the system logging facility, “syslog”.
There are two ways to use courierlogger:
Use the shell to pipe another command's standard error, and/or its standard output, to courierlogger's standard input.
Alternatively, courierlogger itself can start another process, and arrange to have its standard error captured.
In either case, each read line of text is sent as a syslog message.
title
Use title
for sending messages to syslog.
title
should be the application's name.
subsystem
Use subsystem
for classifying messages.
Your syslog facility uses subsystem
to determine
which log messages are recorded in which log files.
The currently defined subsystems are:
auth
authpriv
console
cron
daemon
ftp
kern
lpr
mail
news
security
user
uucp
local0
local1
local2
local3
local4
local5
local6
local7
Not all of the above facility names are implemented on every system. Check your system's syslog documentation for information on which facility names are allowed, and which log files record the corresponding messages for each facility.
filename
Save courierlogger's
process ID in filename
.
The -pid
option is required when
-start
,
-stop
,
-restart
are given. If -pid
is given without any of these, -start
is assumed.
Run as a daemon. The pid
option is required.
courierlogger will quietly terminate if another
courierlogger process is already running.
This is used to make sure that only one instance of
program
is running at the same time.
Specify a different filename with pid
to start a second
copy of program
.
Restart program
if it terminates.
Normally
courierlogger itself will terminate when
program
finishes running.
Use respawn
to restart it instead.
Send a SIGHUP
signal to the courierlogger process
(as determined by examining the contents of the file specified by
pid
), which will in turn send a SIGHUP
to its child program
.
Does nothing if courierlogger is not running.
program
must be originally started with the
respawn
option if sending it a SIGHUP
causes it to terminate.
The same thing may be accomplished by sending SIGHUP
to courierlogger itself.
Send a SIGTERM
signal to courierlogger, which in turn
forwards it on to program
.
If program
does not terminate in 8 seconds, kill it
with SIGKILL
.
user
, -group=group
If running as root, change credentials to the given user and/or group, which may be given as names or numeric ids.
When running a child program, it is started
before privileges are dropped
(unless the -droproot
option is also given).
This gives a means of
starting a child as root so it can bind to a privileged port, but still have
courierlogger run as a non-root user. For the -stop
and
-restart
options to work, you should configure the child
program to drop its privileges to the same userid too.
Drop root privileges before starting the child process.
The -user
and -group
options specify
the non-privileges userid and groupid.
Without the -droproot
option the child process remains
a root process, and only the parent courierlogger
process drops root privileges.
program
[ argument ] ...
If a program is given program
will be started as a child process of
courierlogger, capturing its standard error.
Otherwise, courierlogger
reads message from standard input, and automatically terminates when
standard input is closed.