## Name

courierlogger — Courier syslog wrapper

## Synopsis

`courierlogger` [-name=`title`] [-facility=`subsystem`] [-pid=`filename`] [-user=`user`] [-group=`group`] [-droproot] [[[-respawn] [-start] `program` [argument...]] | [-stop] | [-restart]]

## DESCRIPTION

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:

1. Use the shell to pipe another command's standard error, and/or its standard output, to courierlogger's standard input.

2. 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.

## OPTIONS

-name=`title`

  Use `title` for sending messages to syslog. `title` should be the application's name.

-facility=`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`

  ### Note

  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.

-pid=`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.

-start

  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`.

-respawn

  Restart `program` if it terminates. Normally courierlogger itself will terminate when `program` finishes running. Use `respawn` to restart it instead.

-restart

  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.

  ### Note

  `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.

-stop

  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=`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.

-droproot

  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.

## SEE ALSO

couriertcpd(1), your syslog man page.