Program for daemonising and monitoring processes under OpenRC etc.
Go to file
Laurence Withers c55693ce1c Add respawn checking feature
Add a feature which allows arbitrary checks to be performed whenever the child
process is about to be respawned. Currently implemented checks allow running of
a command (via system(3)) or testing the existence of a file.

This was developed to be used to stop respawns of a daemon that was started in
response to a udev hotplug event, but it is generally applicable to many other
scenarios.
2012-10-02 19:33:18 +00:00
scripts Update build system 2012-10-02 09:54:56 +00:00
src/daemonitor Add respawn checking feature 2012-10-02 19:33:18 +00:00
.gitignore Import skeleton of daemonitor 2008-07-26 14:45:31 +00:00
COPYING Import skeleton of daemonitor 2008-07-26 14:45:31 +00:00
README Update build system 2012-10-02 09:54:56 +00:00
config Update build system 2012-10-02 09:54:56 +00:00
make.sh Update build system 2012-10-02 09:54:56 +00:00
run-test.sh Update build system 2012-10-02 09:54:56 +00:00
version Update build system 2012-10-02 09:54:56 +00:00

README

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

daemonitor
========================================================================
Copyright: ©20072012, Güralp Systems Limited
Author: Laurence Withers <lwithers@guralp.com>
License: GPLv3

See file COPYING for detail license information.

Really Quick Instructions
-------------------------

To build: ./make.sh
To install: ./make.sh install

You might want to edit 'config' first. You might also want to set
'INSTALL_PREFIX', which is prepended onto the destination of any installed
file.

Introduction
------------

Daemonitor is a daemon which starts and monitors a child process. It is
intended to be used with foreground child processes (e.g. daemons with a
foreground mode, or long-running processes which are always in the
foreground). Taken together, the daemonitor instance and its child process
represent a "standard" UNIX daemon process (i.e. backgrounded, PID file,
etc.).

The true purpose of daemonitor is to provide a robust way of monitoring
services under e.g. openrc, which provides a mechanism for starting, stopping
and querying services but does not have any automatic monitoring of its own.
Thus if a daemon or service crashes, this will not be recorded or addressed
by the system.

Daemonitor is a very small daemon which itself never exits. Its simple design
and single purpose should ensure that it is robust against various conditions
that may arise in the system (out of disk space, out of memory, ...), and
that it is unlikely to crash due to bugs. The process it monitors can then
crash or exit or be killed and daemonitor will detect this and restart it.

Instructions
------------

TODO