root Service ¶The service root is special, because it is used to control the
Shepherd itself. It has an alias shepherd. It provides the
following actions (in addition to enable, disable and
restart which do not make sense here).
statusDisplays which services are started and which ones are not.
detailed-statusDisplays detailed information about every registered service.
load file ¶Evaluate in the shepherd process the Scheme code in
file, in a fresh module that uses the (shepherd services)
module—as with the --config option of shepherd
(see Invoking shepherd).
eval expLikewise, evaluate Scheme expression exp in a fresh module with all the necessary bindings. Here is a couple of examples:
# herd eval root "(+ 2 2)" 4 # herd eval root "(getpid)" 1 # herd eval root "(lookup-running 'xorg-server)" (service (version 0) (provides (xorg-server)) ...)
unload service-nameAttempt to remove the service identified by service-name.
shepherd will first stop the service, if necessary, and then
remove it from the list of registered services. Any services
depending upon service-name will be stopped as part of this
process.
If service-name simply does not exist, output a warning and do
nothing. If it exists, but is provided by several services, output a
warning and do nothing. This latter case might occur for instance with
the fictional service web-server, which might be provided by both
apache and nginx. If service-name is the special
string and all, attempt to remove all services except for the Shepherd
itself.
reload file-nameUnload all known optional services using unload’s all option,
then load file-name using load functionality. If
file-name does not exist or load encounters an error, you may
end up with no defined services. As these can be reloaded at a later
stage this is not considered a problem. If the unload stage
fails, reload will not attempt to load file-name.
daemonizeFork and go into the background. This should be called before
respawnable services are started, as otherwise we would not get the
SIGCHLD signals when they terminate.
kexecOn GNU/Linux, reboot straight into a new Linux kernel previously loaded
with the kexec -l file command. This is the action
invoked by the reboot -k command. See Invoking reboot.