Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Einführung zu Supervisord (PyGraz)

Avatar for Horst Gutmann Horst Gutmann
November 06, 2012

Einführung zu Supervisord (PyGraz)

Avatar for Horst Gutmann

Horst Gutmann

November 06, 2012
Tweet

Other Decks in Technology

Transcript

  1. Was ist supervisord? • Init Daemon ähnlich wie init.d und

    upstart • Pure Python • Linux, OSX, FreeBSD und Solaris o!ziell unterstützt • BSD-ähnliche Lizenz
  2. Init Daemon? • Automatischen Starten und Stoppen von Prozessen •

    Überwachung, ob der Prozess noch läuft • Verbreitete Systeme: sysvinit, upstart, launchd, ...
  3. Warum etwas Neues? • Man muss nicht für jeden Prozess

    eine eigene separate Con"g anlegen (sysinitv, upstart, ...) • Prozesse werden als Child-Prozesse verwaltet, wodurch PID-Files nur mehr in Ausnahmefällen benötigt werden. • Ganz normale Anwendung, die auch von ganz normalen Usern ausgeführt werden kann.
  4. Warum etwas Neues? • Webinterface, über das das Status von

    Prozessen angezeigt und geändert werden kann. • XML-RPC-API • stdout-Logging • Eine Lösung, die auf jedem Unix-System laufen sollte
  5. Groups • Eine Supervisord-Instanz für alles • Bei ähnlichen Tools

    dann künstliche [program]- Namen notwendig • Start und Stop von Sites über Groups
  6. Supervisord pro Site • Jede Site hat eine eigene Supervisord-Instanz

    • Erlaubt eigenen User pro Site und damit einfacheres Restarting bei Deployments • Saubere Programmnamen möglich • Installation in eigener venv oder global mit separaten Con"g-Files
  7. pygraz.org & de.pycon.org • Mehrere Con"gs mit Installation global bzw.

    venv (de.pycon.org) • def start_server(): with pre"x(env_pre"x): run('supervisorctl -c {0}/supervisord.conf‘ ‘start pygraz'.format(env.cwd)) Look Ma, No sudo! • Jede Instanz dann mit upstart verwaltet.
  8. de.pycon.org • /srv/pyconde/env_pyconde_2012/supervisord.conf • Supervisord installiert in venv, damit supervisorctl-Befehl

    im richtigen Kontext ausgeführt wird. • sysvinit-Script zum Starten des supervisord
  9. Personal Daemons • Einzelne Benutzer können Crontabs haben, aber keine

    Managed-Processes • Mit Supervisord natürlich auch möglich :-) • Zum Beispiel für einfache Webservices eine Option