Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Catalog · How the catalog works
Anything · Lazarus or Delphi
Random projectRandom project

godaemon

Powerful daemoniser with nagios monitoring for Linux

View on GitHub

Member rating

No ratings yet.

Sign in to rate this project.

README

godaemon

Daemoniser/task manager for anything.

Run any program or script (e.g. a program written in Go, Python, Ruby...) as a daemon, with the following extra features:

  • A true daemon (detaches from the session group and is immune to session signals)
  • Automatically restart the program if it stops/crashes
  • Capture the output of the program to a log file (compatible with log rotate)
  • Logs program restarts / failures
  • Sends an email if the program crashes and is restarted
  • Includes the last few lines of log output in the email to help diagnose the problem
  • Configurable safety throttle (don't restart too many times or too quickly)
  • Nagios plugin mode - reports the status of the daemon to nagios/icinga via NRPE
  • Runs the task as a different user or group in a sandbox (chroot support coming soon)

Why:

  • This project started because Go programs cannot become daemons (fork/threads/goroutines issue)
  • Most other daemonisers don't handle auto restart nicely (safety throttle)
  • Most other daemonisers can't send an email on task restart
  • Lightweight and simple to use
  • Plugs into nagios/icinga easily - godaemon itself can be called by NRPE so you do not need to write a plugin yourself
  • Very lightweight memory and CPU footprint, and no system library dependencies
  • Multiple copies of godaemon on the same host will consume very little memory, if you need to daemonise many tasks

OS:

  • Linux is fully supported.
  • Mac OS support almost works, but not quite - coming later.
  • Windows support will be added later, but it will work differently (Windows Service)

Binaries (see releases):

  • x86 and x64 Linux builds have been released that should run under any reasonably modern distro (statically linked binaries with no dependencies)
  • Raspberry Pi builds have been released but have not been tested on the Pi 3, only on the Pi 1 and Pi 2.

Production stability:

  • On Linux, godaemon has been in production use for quite some time.
  • The ARM builds should be considered beta until fully tested (undergoing)

License:

  • MIT license - see LICENSE file.