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
Mehrere Polipo Server auf einer Maschine
Mehrere Polipo Server auf einer Maschine
Bürokratie kann man nur durch ihre Anwendung bekämpfen.
Re: Mehrere Polipo Server auf einer Maschine
(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
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# cat /LOKAL/polipo-segf-walkaround.sh
Die pipe-Datei wird von rsyslog beschickt:
# cat /etc/rsyslog.d/99_POLIPO.conf
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))
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
ohne weitere Hinweise.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]
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
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
:
# 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'
(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")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
Re: Mehrere Polipo Server auf einer Maschine
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
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.