Mehrere Polipo Server auf einer Maschine

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Benutzeravatar
shoening
Beiträge: 918
Registriert: 28.01.2005 21:05:59
Lizenz eigener Beiträge: MIT Lizenz

Mehrere Polipo Server auf einer Maschine

Beitrag von shoening » 21.02.2014 19:14:01

Hi,

gibt es eigentlich eine empfohlene Vorgehensweise, wie man die Konfiguration und die Startscripte umstellen sollte, wenn man mehr als eine Instanz einer Servensoftware auf einer Maschine laufen lassen will.

Bei Polipo sind z.B. die Startscripte - zumindest sehe ich das so - derart, dass man z.B. einfach eine Umgebungsvariable umstellen kann, um auf ein anderes Konfigurationsset umzustellen.

Ciao
Stefan
Bürokratie kann man nur durch ihre Anwendung bekämpfen.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Mehrere Polipo Server auf einer Maschine

Beitrag von rendegast » 21.02.2014 20:12:27

(Etwas ähnliches habe ich hier mit mehreren Instanzen vsftpd laufen)

Zunächst einmal init.d/polipo und polipo-control kopieren und
an entsprechenden Stellen zBsp. "polipo" -> "polipox" ändern.
Separate config-Dir erstellen und in der entsprechenden Konfig die ganzen Verweise (auch impliziten) auf Verzeichnisse / Dateien entsprechend explizit ändern.

Was wohl hilfreich sein könnte, wären Links in der Art
/usr/bin/polipox -> polipo
/usr/bin/polipoy -> polipo
da so aufgerufene Prozesse auch als "polipox", "polipoy" in der Prozeßliste stehen
-> ist gedacht für zBsp. die Funktion nameOfPID().
Zudem würde ein Upgrade dann alle Instanzen treffen (im Gegensatz zu kopierten binaries).

Nach einem Upgrade reicht wohl allermeist ein Restart der Service aus,
was ein Wächter-Skript für die zusätzlichen Instanzen übernehmen könnte.
Nichtsdestotrotz sollte sich Admin in dem Fall mal das Paket, dessen postinst usw. ansehen,
und gegebenenfalls geänderte Vorgaben an die anderen Instanzen-Konfigurationen weitergeben.




Anmerkung speziell zu polipo:
Ich habe seit Installation (~ einige Wochen) zwei diffuse Abstürze
Feb 11 17:39:32 kbfr002 kernel: [77108.624851] polipo[1895]: segfault at 2e7472cf ip 0805c435 sp bfaca130 error 4 in polipo[8048000+2e000]
Feb 17 16:35:12 kbfr002 kernel: [591648.451970] polipo[1677]: segfault at 8 ip 0805f40d sp bfb818e0 error 4 in polipo[8048000+2e000]
ohne weitere Hinweise.
Ich habe auf dauernden debug-Betrieb angesichts der Häufigkeit aber keine Lust,
und es per Wächterskript erledigt:
# cat /etc/cron.d/zz_polipo-walkaround

Code: Alles auswählen

#!/bin/sh
#Thu Feb 20 06:02:41 CET 2014

# ein walkaround gebastelt mit rsyslog->pipe-> grep->polipo-restart

@reboot root /LOKAL/polipo-segfault.sh
# cat /LOKAL/polipo-segf-walkaround.sh

Code: Alles auswählen

#!/bin/sh

PIPE=/var/run/POLIPO.pipe
[ -p "$PIPE" ] || {
    mkfifo -m 600 "$PIPE"
    #service rsyslog restart                   # so nicht als cronjob wohl wg. PATH
    /etc/init.d/rsyslog restart
}

while true; do
    # der Test und die rsyslog-Anweisung sind nur hinreichend (bislang),
    # benoetigen eigentlich sicherere Angaben
    egrep -q "polipo.*segfault" "$PIPE" && {
        #service polipo restart
        #service polipo stop
        #service polipo start
        /etc/init.d/polipo stop
        sleep 1
        /etc/init.d/polipo start
    }
done

:
Die pipe-Datei wird von rsyslog beschickt:
# cat /etc/rsyslog.d/99_POLIPO.conf

Code: Alles auswählen

#!/bin/sh
# polipo crasht gelegentlich

:msg,regex,"polipo.*segfault"   -/var/log/POLIPO.log

:msg,regex,"polipo.*segfault"   |/var/run/POLIPO.pipe
#       muss erstellt sein 'mkfifo -m 600 ...' oder 'mknod -m 600 ... p'
Habe ich das Ding mal gestoppt, starte ich es über einen schnell gesetzten cronjob für zBsp. die nächste Minute neu.
(darum darf das Wächterskript auch nicht "polipo...segfault" heißen,
da dies über crons Meldung und rsyslog zu einer Schleife führen würde
(neckische User, die mit eigenen cronjobs den Ablauf stören, habe ich bisher nicht auf der Maschine))
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Benutzeravatar
shoening
Beiträge: 918
Registriert: 28.01.2005 21:05:59
Lizenz eigener Beiträge: MIT Lizenz

Re: Mehrere Polipo Server auf einer Maschine

Beitrag von shoening » 24.02.2014 16:49:21

Hi,

ich habe mir jetzt auf Basis der Datei /usr/lib/polipo/polipo-control eine eigene Datei polipo-instance-control erstellt,
die ich dann aus entsprechenden Init-Scripten aufrufe.

Dazu lege ich ein Verzeichnis /etc/polipo.d an. Für jede polipo Instanz kommt da ein Unterverzeichnis mit den entsprechenden Konfigurationsdateien hinein.

Die Anpassungen an den Instanz-Namen sind die wesentlichen Änderungen, die ich dann in polipo-instance-control vorgenommen habe.

Für jede polipo Instanz habe ich dann noch in /etc/init.d ein Script, mit dem ich die Instanz als Service starten und stoppen kann.

Ciao
Stefan
Bürokratie kann man nur durch ihre Anwendung bekämpfen.

Antworten