wordpress themes | total verfriemelt

Total Verfriemelt

am Rande des Wahnsinns

Die Daemontools unter Linux sind nicht dazu da .ISO oder .IMG Files zu mounten, wie etwa bei den Daemontools unter Windows, sondern sie machen einen Dienst “Hochverfügbar”. Daemontools ersetzen für die überwachten Dienste, die Init Scripte und starten einen Dienst innerhalb von 5 Sekunden nach Absturz oder beenden neu. Der Daemon supervise, überwacht alle Dienste, für man unter dem Ordner /service/$DIENST ein Run-Script angelegt hat.

Die Installation der Daemontools ist unter CentOS5 leider etwas tricky. Ohne Eingriff kompiliert die 0.76 Version von D.J. Bernstein leider nicht fehlerfrei. Wer eine andere Distribution einsetzt, kann evtl. gleich bei der Konfiguration weitermachen. Sollte man bei der Installation allerdings folgenden Fehler erhalten,

usr/bin/ld: errno: TLS definition in /lib/libc.so.6 section .tbss mismatches non-TLS reference in envdir.o

muss man in der “src/conf-cc” die Zeile, welche mit gcc anfängt, durch ein

-include /usr/include/errno.h

ergänzen.

Danach klappts auch mit dem Nachbarn der Installation unter CentOS5.


[...]

Copying commands into ./command...
Creating symlink daemontools -> daemontools-0.76...
Making command links in /command...
Making compatibility links in /usr/local/bin...
Creating /service...
Adding svscanboot to inittab...
init should start svscan now.

[...]

Konfiguration – Dienste hinzufügen

In diesem Beispiel füge ich den Imap/Pop3 Server Dovecot der Überwachung hinzu. Dazu wird zuerst ein Verzeichnis innerhalb des /service/ Ordners erstellt und das Run-Script erzeugt. Wichtig ist zu wissen, dass die Dienste im Vordergrund laufen müssen um von den Daemontools kontrolliert zu werden. Daher hier im Beispiel Dovecot, der Schalter -F.

[root@dagan ~]# mkdir /service/dovecot

/service/dovecot/run:


#!/bin/sh
#
PATH="/usr/bin:/bin"
/usr/sbin/dovecot -F 2>&1

Natürlich muss das Run-Script executable gemacht werden, damit der Supervise- Daemon das Script auch ausführen kann, sobald er feststellt, dass der Dovecot nicht mehr läuft.

[root@dagan~]# chmod 755 /service/dovecot/run

Die Daemontools sollten den Dienst jetzt gestartet haben, was man schön via ps überprüfen kann:


[root@dagan ~]# ps afwx
 PID TTY      STAT   TIME COMMAND
 [...]
 2314 ?        Ss     0:00 /bin/sh /command/svscanboot
 2372 ?        S      0:00  \_ svscan /service
 2374 ?        S      0:00  |   \_ supervise dovecot
 2375 ?        S      0:00  |       \_ /usr/sbin/dovecot -F
 2377 ?        S      0:00  |           \_ dovecot-auth
 2380 ?        S      0:00  |           \_ pop3-login
 2382 ?        S      0:00  |           \_ pop3-login
 2383 ?        S      0:00  |           \_ imap-login
 2384 ?        S      0:00  |           \_ imap-login
 2477 ?        S      0:00  |           \_ pop3-login
 2564 ?        S      0:00  |           \_ imap
 2565 ?        S      0:00  |           \_ imap-login
 2566 ?        S      0:00  |           \_ imap-login
 2567 ?        S      0:00  |           \_ imap
 2373 ?        S      0:00  \_ readproctitle service errors:...............................................

Um den Dienst jetzt zu kontrollieren, benutzt man das Tool svc.

Der Befehl svc -u /service/dovecot startet den Daemon und schaltet die Überwachung ein, svc -d /service/dovecot beendet den Daemon.

Ein Liste der verfügbaren svc Parameter:

svc applies all the options to each service in turn. Here are the options:

    * -u: Up. If the service is not running, start it. If the service stops, restart it.
    * -d: Down. If the service is running, send it a TERM signal and then a CONT signal. After it stops, do not restart it.
    * -o: Once. If the service is not running, start it. Do not restart it if it stops.
    * -p: Pause. Send the service a STOP signal.
    * -c: Continue. Send the service a CONT signal.
    * -h: Hangup. Send the service a HUP signal.
    * -a: Alarm. Send the service an ALRM signal.
    * -i: Interrupt. Send the service an INT signal.
    * -t: Terminate. Send the service a TERM signal.
    * -k: Kill. Send the service a KILL signal.
    * -x: Exit. supervise will exit as soon as the service is down.

Bookmark and Share

Ähnliche Verfriemelungen:

Kommentare

Es gibt 6 Kommentare für diese Verfriemelung.

  1. kero on Oktober 27, 2009 2:48 pm

    Schaut der einfach nur ob da ein Prozess namens dovecot usw. laeuft? Ansonsten wuerde ich da lieber nagios mit event handler (http://nagios.sourceforge.net/download/contrib/documentation/german/1_0/eventhandlers.html) nehmen. Denn recht oft sind die Prozesse noch am laufen obwohl sie nichts sinniges mehr ausspucken..z.B. bei tomcat, apache & co habe ich das schon haeufiger so erlebt.

  2. Bjoern on Oktober 27, 2009 2:57 pm

    Ja sicherlich sind die Nagios Eventhandler in Umgebungen wo auch Nagios zum Einsatz kommt besser. Allerdings lohnt sich imho nicht für jede Umgebung wo z.B. auf einem Rootserver nur ein Apache + Mailserver läuft auch ein Nagios einzurichten. Für diese Zwecke würde ich ganz einfach Daemontools einsetzen.

  3. kero on Oktober 27, 2009 3:04 pm

    Umgebungen ohne nagios…;-)?

  4. Bjoern on Oktober 27, 2009 3:09 pm

    Soll vorkommen ;-)

  5. Olli on November 12, 2009 8:47 am

    Da sucht man mal kurz nach den Daemontools und merkt erst am Ende der Seite wo man überhaupt gelandet ist! *g* Viele Grüße, Olli

  6. Bjoern on November 12, 2009 10:15 am

    @Olli – Jo das Internet ist klein… Hoffe du hast gefunden wonach du gesucht hast ;-) Gruß zurück und auch an den Anhang…

Senf dazugeben