from small one page howto to huge articles all in one place
Last additions:
May 25th. 2007:
April, 26th. 2006:
|
You are here: manpages
SUPERVIS-DAEMON
Section: Maintenance Commands (8) Updated: SMM Index
Return to Main Contents
BSD mandoc
OpenRC
NAME
supervis-daemon
- starts a daemon and restarts it if it crashes
SYNOPSIS
servicename
- a ,-healthchec-timer
seconds
- A ,-healthchec-delay
seconds
- D ,-respaw-delay
duration
- d ,-chdir
path
- e ,-env
var=value
- g ,-group
group
- I ,-ionice
arg
- k ,-umask
value
- -notify fd: num
- m ,-respaw-max
count
- N ,-nicelevel
level
- -oo-scor-adj
adj
- p ,-pidfile
supervisorpidfile
- P ,-respaw-period
duration
- -respaw-dela-step
duration
- -respaw-dela-cap
duration
- R ,-retry
arg
- r ,-chroot
chrootpath
- u ,-user
user
- 0 ,-stdin
file
- 1 ,-stdout
logfile
- 2 ,-stderr
logfile
- S ,-start
daemon
[-
]
[ arguments
]
servicename
- K ,-stop
daemon
- r ,-chroot
chrootpath
servicename
- s ,-signal
signal
- r ,-chroot
chrootpath
DESCRIPTION
provides a consistent method of starting, stopping and restarting
daemons. If
- K ,-stop
or
- s ,-signal
is not provided, then we assume we are starting the daemon.
only works with daemons which do not fork. If your daemon has options to
tell it not to fork, it should be configured to not fork.
Here are the options to specify the daemon and how it should start or stop:
- -u ,-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.
- -v ,-verbose
-
Print the action(s) that are taken just before doing them.
The options are as follows:
- -a ,-healthchec-timer seconds
-
Run the healthcheck() command, possibly followed by the unhealthy()
command every time this number of seconds passes.
- -A ,-healthchec-delay seconds
-
Wait this long before the first health check.
- -D ,-respaw-delay duration
-
Wait for the specified duration before restarting a daemon after it crashes.
The default is 0.
Duration is an integer optionally followed by a unit.
Supported units are: ms, sec, min, hour (defaults to sec if none is provided).
- -d ,-chdir path
-
chdir to this directory before starting the daemon.
- -e ,-env VAR=VALUE
-
Set the environment variable VAR to VALUE.
- -g ,-group group
-
Start the daemon as in the group.
- -I ,-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.
- -k ,-umask mode
-
Set the umask of the daemon.
- --notify fd: num | socket:ready
-
Open file descriptor
num
as a pipe, and waits until the daemon writes a newline to it before exiting.
Or waits for
READY=1
in the datagram socket opened at
$NOTIFY_SOCKET
- -m ,-respaw-max count
-
Sets the maximum number of times a daemon will be respawned. If a daemon
crashes more than this number of times,
will give up and exit. The default is 10 and 0 means unlimited.
If respaw-period is also set, more than respaw-max crashes must occur
during respaw-period seconds to cause
to give up and exit.
- -p ,-pidfile supervisorpidfile
-
Sets a path for the supervisor's pid file. Note that this is not the pid
file of the process that is being supervised.
- -N ,-nicelevel level
-
Modifies the scheduling priority of the daemon.
- --oo-scor-adj adj
-
Modifies the OOM score adjustment of the daemon.
- -P ,-respaw-period duration
-
Sets the duration of a respawn period. See the
description of-respaw-max and-respaw-delay for more information.
Default is 12sec.
- --respaw-dela-step duration
-
Increase the respaw-delay by duration with every retry within respaw-period.
Default is 128ms.
- --respaw-dela-cap duration
-
Set the maximum respaw-delay duration. Only active if-respaw-dela-step is
above 0. Default is 30sec.
- -R ,-retry timeout | signal / timeout
-
The retry specification can be either a timeout in seconds or multiple
signal/timeout pairs (like SIGTERM/5).
If this option is not given, the default is SIGTERM/5.
- -r ,-chroot path
-
chroot to this directory before starting the daemon. All other paths, such
as the path to the daemon and chdir should be relative to the chroot.
- -,-signal signal
-
Instruct a supervisor to signal the process it is supervising. The
process to communicate with is determined by the name of the service
taken from the RC_SVCNAME environment variable.
- -u ,-user user
-
Start the daemon as the specified user.
- -0 ,-stdin file
-
Redirect the standard input of the process to file.
Must be an absolute pathname, but relative to the path optionally given with
-r ,-chroot
The file can also be a named pipe. Input redirection assumes that the file
exists already while output redirection via
-1 ,-stdout
or
-1 ,-stderr
creates it, if it doesn't.
- -1 ,-stdout logfile
-
The same thing as
-0 ,-stdin
but with the standard output.
- -2 ,-stderr logfile
-
The same thing as
-1 ,-stdout
but with the standard error output.
- --stdou-logger cmd
-
Run cmd as a child process redirecting the standard output to the
standard input of cmd when started with
-background
Cmd must be an absolute pathname, but relative to the path optionally given with
-r ,-chroot
This process must be prepared to accept input on stdin and be able to
log it or send it to another location.
- --stder-logger cmd
-
Run cmd as a child process and
Redirect the standard error of the process to the standard input of cmd
when started with
-background
Cmd must be an absolute pathname, but relative to the path optionally given with
-r ,-chroot
This process must be prepared to accept input on stdin and be able to
log it or send it to another location.
- --capabilities ca-list
-
Start the daemon with the listed inheritable, ambient and bounding capabilities.
The format is the same as in cap_iab(3).
- --secbits se-bits
-
Set the securit-bits for the program.
The numeric value of the securit-bits can be found in <sys/secbits.h> header file.
The format is the same as in strtoul(3).
- --n-ne-privs
-
Set the No New Privs flag for the program. See PR_SET_NO_NEW_PRIVS prctl(2).
ENVIRONMENT
SSD_IONICELEVEL
can also set the IO scheduling priority of the daemon, but the command line
option takes precedence.
SSD_NICELEVEL
can also set the scheduling priority of the daemon, but the command line
option takes precedence.
SSD_OOM_SCORE_ADJ
can also set the OOM score adjustment of the daemon, but the command line
option takes precedence.
NOTE
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.
NOTE
If respaw-delay, respaw-max and respaw-period are not set correctly,
it is possible to trigger a situation in which the supervisor will
infinitely try to respawn a daemon. To avoid this, if you change the
values of-respaw-delay,-respaw-max or-respaw-period, always
make sure the settings make sense. For example, a respawn period of 5
seconds with a respawn max of 10 and a respawn delay of 1 second leads
to infinite respawning since there can never be 10 respawns within 5
seconds.
NOTE
Invoking supervis-daemon requires both the RC_SVCNAME environment
variable to be set and the name of the service as the first argument on
the command line, so it is best to invoke it inside a service script
rather than manually.
SEE ALSO
chdir(2),
chroot(2),
getopt(3),
nice(2),
HISTORY
first appeared in Debian.
This is a complete r-implementation with the process finding code in the
OpenRC library (librc,-lrc) so other programs can make use of it.
AUTHORS
An William Hubbs < w.d.hubbs@gmail.com>
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- ENVIRONMENT
-
- NOTE
-
- NOTE
-
- NOTE
-
- SEE ALSO
-
- HISTORY
-
- AUTHORS
-
|
|