The Argos software system will be deployed with many standalone services. The majority of these services will be device services (basdard).

To keep all services running all the time, a service watchdog or service supervisor is needed. The supervision system has to fulfill the following requirements:
  1. Must start the services in the right order
  2. Must watch the services
  3. Must detect termination of services
  4. Must restart services
  5. Must allow connecting to the service consoles

Watchdog Candidates

The following software solutions seems to be promising:
  1. monit
    1. presentation
  2. daemontools
  3. Cron and shell scripts (low tech)
  4. Screen for connection to the console of a running service
  5. StartupD from TwiceAsNice
  6. NAGIOS offers complete monitoring and alerting for servers, switches, applications, and services.

Monit

Advantages
  1. simple to install and to set up
  2. light in terms of memory and cpu usage
  3. flexible to configure
  4. can use external apps to check connectivity or pid existance
  5. well documented
  6. support dependencies, groups, and live file changes.
Disadvantages
  1. poor web front-end
  2. some operations are very limitated, i.e. the use of global environmental var
iables has to be done as follow
start = "/usr/bin/env PATH=/home/jborelli/apps/bin /usr/bin/env INSROOT=/home/jb
orelli/apps /bin/sh -c '/home/jborelli/apps/bin/basdard --CONFIG=/home/jborelli/
apps/etc/avtcam.    cfg'" as uid jborelli and gid jborelli

nagios

  1. quite complete system
  2. good support
  3. too comlicated to setup
  4. requeries extra man power to be used
  5. lot of software dependencies.

daemontools

pro:
  • consistent start procedure
  • good documentation
  • restarts programs automatically
  • command line tools available, for the tasks:
    • checking service running status (svok)
    • sending commands to monitored services (svc)
  • portable
contra:
  • logging the program output needs a helper script
  • no web i/f available
  • no service startup order definition
  • development activity is unknown: Is the mailing list active? http://sourceforge.net/projects/daemontools/support
  • program seems to be a one man show (D.J. Bernstein)
example: Starting supervision of one service manually:
tux_service$ ls
run*
tux_service$ cat run 
#!/bin/sh -x

exec argos_mpe_start_powermeter_service

tux_service$ supervise .

<supervise is running on the terminal>

example: Starting supervision of services and logging output manually:
/services/beastie$ find .
.
./log
./log/run
./run
/services/beastie$ cat run 
#!/bin/sh -x

exec argos_mpe_start_powermeter_service
/services/beastie$ cat log/run
#!/bin/sh

exec multilog ./main

/services/beastie$ cd ../
services$ ls
beastie/
kulas@limk[/tmp/delme/services]$241) svscan .

< svscan keeps alive >
---++ Cron and Shell Scripts

Pro:
   * We use well-known tools
Contra:
   * We will invent the wheel again
   * We will have to write a lot of code
---++ startupD

Pro:
   * It comes with the common software
Contra:
   * At the moment (2012-01-12), there is no documentation in the TaN wiki
   * There is no online help, i.e. no man page or =startupD -h=
   * The purpose of startupD is unclear
Topic revision: r4 - 14 Aug 2018, AndrewColson
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback