Skip to main content

Tools for communicating with runit / daemontools supervisors.

Project description

This module provide a methods to handle runit or daemontools based supervised services, using the control file provided. Here is a small example:

>>> import supervise
>>> s = supervise.Service('test')
>>> print s.status()
{'action': None, 'status': 0, 'uptime': 300L, 'pid': None}
>>> s.start()
>>> print s.status()
{'action': None, 'status': 1, 'uptime': 3L, 'pid': 27450}

Read the manpage of runsv(8) for more information. Also read the documentation for ServiceStatus to known how to parse status information.

History

Last month I needed to install runit in some servers to supervise a couple of services. Unfortunately my management interface cannot handle the services anymore, so I decided to write a small module in python to solve this handicap, and that is the result!.

With this module you can handle in python environment a number of runit scripts. I think that this might be work for daemontools too, but I do not test yet. Let’s see an example:

>>> import supervise
>>> c = supervise.Service("/var/service/httpd")
>>> print s.status()
{'action': 'normal', 'status': 'up', 'uptime': 300L, 'pid': None}
>>> if s.status()['status'] == supervise.STATUS_DOWN: print "service down"
service down
>>> s.start()
>>> if s.status()['status'] == supervise.STATUS_UP: print "service up"
service up

Personally I use this module with rpyc library to manage remotely the services running in a host, but it too easy making a web interface, for example using bottle:

import supervise
import simplejson
from bottle import route, run

@route('/service/status/:name')
def service_status(name):
    return simplejson.dumps( supervise.Service("/var/service/" +
        name).status() )

@route('/service/up/:name')
def service_up(name):
    c = supervise.Service("/var/service/" + name)
        c.start()
    return "OK UP"


@route('/service/down/:name')
def service_down(name):
    c = supervise.Service("/var/service/" + name)
        c.down()
    return "OK DOWN"


if __name__ == "__main__":
    run()

Now you can stop your service just only point your browser http://localhost/service/down/httpd (to down http service in this case).

Enjoy!

author:

Andres J. Diaz <ajdiaz@connectical.com>

date:

2009-11-21

maintainer:

Peter Ruibal <ruibalp@gmail.com>

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

supervise-1.1.1.tar.gz (5.0 kB view details)

Uploaded Source

Built Distributions

supervise-1.1.1-py2.7.egg (10.1 kB view details)

Uploaded Source

supervise-1.1.1-py2.6.egg (10.1 kB view details)

Uploaded Source

File details

Details for the file supervise-1.1.1.tar.gz.

File metadata

  • Download URL: supervise-1.1.1.tar.gz
  • Upload date:
  • Size: 5.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for supervise-1.1.1.tar.gz
Algorithm Hash digest
SHA256 8671e1fedf064c24190d468be8248433032917167605f585b4c2c55a27be4132
MD5 0bbff85fa5897dddfdfbf0cbc7aa3eab
BLAKE2b-256 f68de4d2f8e975fa5364f217fce875420beac2de45c22b2c4ac0c6c64355d5e2

See more details on using hashes here.

File details

Details for the file supervise-1.1.1-py2.7.egg.

File metadata

File hashes

Hashes for supervise-1.1.1-py2.7.egg
Algorithm Hash digest
SHA256 dc24e08bac183255405ced40106d2e25fc2777b8256b5d6ae1c9fd55187f3053
MD5 76be3c072e34eeb8aef3a394197cd225
BLAKE2b-256 b8868800653f7ea85e3ab38be4f4a556b11f1b12ff8fd445fd265f6b75cb9408

See more details on using hashes here.

File details

Details for the file supervise-1.1.1-py2.6.egg.

File metadata

File hashes

Hashes for supervise-1.1.1-py2.6.egg
Algorithm Hash digest
SHA256 949aab2e508a709c9b5347a57ba7fd9cba586e1b6125d232340d9a17846415fb
MD5 dc49659a3ba4baecec46b8e6b6be5682
BLAKE2b-256 448d4884b5d5263ad999597c00516f417a5e72fa686ff99a2c79e25b7f41394b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page