Scroll to navigation

supervise-DAEMON(8) System Manager's Manual (smm) supervise-DAEMON(8)

NAME

supervise-daemon
starts a daemon and restarts it if it crashes

SYNOPSIS

supervise-daemon -d, --chdir path -e, --env var=value -g, --group group -I, --ionice arg -k, --umask value -N, --nicelevel level -p, --pidfile pidfile -u, --user user -r, --chroot chrootpath -1, --stdout logfile -2, --stderr logfile -S, --start daemon [--] [arguments]

supervise-daemon -K, --stop daemon -p, --pidfile pidfile -r, --chroot chrootpath

DESCRIPTION

supervise-daemon provides a consistent method of starting, stopping and restarting daemons. If -K, --stop is not provided, then we assume we are starting the daemon. supervise-daemon only works with daemons which do not fork. Also, it uses its own pid file, so the daemon should not write a pid file, or the pid file passed to supervise-daemon should not be the one the daemon writes.

Here are the options to specify the daemon and how it should start or stop:

, --pidfile pidfile
When starting, we write a pidfile so we know which supervisor to stop. When stopping we only stop the pid(s) listed in the pidfile.
, --user user[:group]
Start the daemon as the user and update $HOME accordingly or stop daemons owned by the user. You can optionally append a group name here also.
, --verbose
Print the action(s) that are taken just before doing them.

The options are as follows:

, --chdir path
chdir to this directory before starting the daemon.
, --env VAR=VALUE
Set the environment variable VAR to VALUE.
, --group group
Start the daemon as in the group.
, --ionice class[:data]
Modifies the IO scheduling priority of the daemon. Class can be 0 for none, 1 for real time, 2 for best effort and 3 for idle. Data can be from 0 to 7 inclusive.
, --umask mode
Set the umask of the daemon.
, --nicelevel level
Modifies the scheduling priority of the daemon.
, --chroot path
chroot to this directory before starting the daemon. All other paths, such as the path to the daemon, chdir and pidfile, should be relative to the chroot.
, --user user
Start the daemon as the specified user.
, --stdout logfile
Redirect the standard output of the process to logfile. Must be an absolute pathname, but relative to the path optionally given with -r, --chroot. The logfile can also be a named pipe.
, --stderr logfile
The same thing as -1, --stdout but with the standard error output.

ENVIRONMENT

SSD_NICELEVEL can also set the scheduling priority of the daemon, but the command line option takes precedence.

NOTE

supervise-daemon uses getopt(3) to parse its options, which allows it to accept the `--' option which will cause it to stop processing options at that point. Any subsequent arguments are passed as arguments to the daemon to start and used when finding a daemon to stop or signal.

SEE ALSO

chdir(2), chroot(2), getopt(3), nice(2), rc_find_pids(3)

BUGS

supervise-daemon cannot stop an interpreted daemon that no longer exists without a pidfile.

HISTORY

supervise-daemon first appeared in Debian.

This is a complete re-implementation with the process finding code in the OpenRC library (librc, -lrc) so other programs can make use of it.

AUTHORS

William Hubbs <w.d.hubbs@gmail.com>
April 27, 2016 OpenRC