You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users-de@httpd.apache.org by Ro...@msg.de on 2004/07/02 09:28:38 UTC
stoppen des httpd
hallo Liste,
ich habe im Unix einen Apache installiert, unter dem ich eigene Module
entwickelt habe. Wenn ich den Apache starte, wird als erstes der
Hauptprozess gestartet und anschließend beliebig viele Child-Prozesse.
Wenn in einem der Childs ein Fehler auftritt, der zum Beenden des selbigen
führt, startet der Apache neue Childprozesse, in denen der Fehler
zwangsweise erneut auftritt.
Gibt es eine Möglichkeit, dem Apache aus einem Childprozess heraus
mitzuteilen, dass keine weiteren Childs gestartet werden sollen bzw. dass
der Apache sich beendet?
Vielleicht durch eine bestimmte Funktion? Durch ein Signal ist es leider
nicht möglich, da der Hauptprozess unter root läuft und die Childprozsse
unter einem normalen Nutzer.
Mit freundlichen Grüßen,
Ronny Bartz
--------------------------------------------------------------------------
Apache HTTP Server Mailing List "users-de"
unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------
Re: AW: stoppen des httpd
Posted by Martin Ebert <ma...@wb-online.de>.
Marcus, Ronny, liebe Liste,
> Ich sehe für Dein Problem alternative Lösungsansätze:
Wie wäre es, wenn der Vaterprozess für jeden gestarteten
Child eine PIPE aufmacht - die der Child bedienen muss?
So richtig nach den alten Regeln der Computerwissenschaft?
Mit freundlichen Gruessen, Martin Ebert
--
http://www.klug-suchen.de
http://www.bahnsuche.de
http://www.ddr-suche.de
http://www.wb-online.de
--------------------------------------------------------------------------
Apache HTTP Server Mailing List "users-de"
unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------
AW: stoppen des httpd
Posted by Marcus Reimann <Ma...@reimann-systemberatung.de>.
Hallo Ronny,
es sollte den Child-Prozessen nicht möglich sein, den Hauptprozess
zu beenden. Schließlich laufen die Childprozesse unter einem anderen
User und haben damit kein Recht, die Prozesse des root-Users einfach
zu beenden.
Ich sehe für Dein Problem alternative Lösungsansätze:
1. Das von Dir selbst entwickelte Modul sollte um Code erweitert
werden, mit dem es bereits beim Aufruf feststellt, ob eine
Fehlersituation vorliegt (z.B. kein Datenbankconnect möglich
oder Vorhandensein irgendwelcher besonderer Fehlermeldungen
in einer Logdatei). Wenn die Fehlersituation vorliegt, soll
das Modul einfach seine Arbeit einstellen bzw. keinen Code
ausführen, der während einer Fehlersituation zum Absturz des
Moduls führen könnte. Da Dein Modul dann im Fehlerfall keinen
Code mehr ausführt, der zum Absturz eines Child-Prozesses
führen könnte, sondern fehlerfrei weiterläuft, sieht sich der
Apache nicht mehr genötigt, weitere Child-Prozesse zu starten.
2. Alternativ kannst Du neben dem Apache-Server ein Kontrollskript
im Hintergrund laufen lassen, welches die Aufgabe hat, Dein
System auf mögliche Fehlersituationen hin zu untersuchen.
Stellt das Kontrollskript fest, daß eine Fehlersituation vorliegt,
so fährt es den Apache-Server komplett herunter (z.B. durch
Aufruf von 'apachectl stop'). Das Kontrollskript selbst muß
natürlich ebenfalls unter dem root-User laufen, damit es auch
die Berechtigung hat, den Apache-Prozess zu beenden.
3. Sofern der Apache nicht zwingend auf Ports < 1024 laufen muss,
kannst Du ihn auch unter einem anderen User starten. Dann dürften
die Childprozesse auch die Erlaubnis haben, den Hauptprozess
zu beenden.
4. Notfalls kannst Du Dir auch Lösungen wie sudo anschauen.
Du solltest aber aufpassen, dass Du dadurch Angreifern nicht
ungewollt Hintertüren zu Deinem System öffnest. Dokumentation
zu sudo findest Du unter
http://www.courtesan.com/sudo/man/sudo.html
Gruß
Marcus Reimann
M. Reimann Systemberatung
http://www.reimann-systemberatung.de
-----Ursprüngliche Nachricht-----
Von: Ronny_Bartz@msg.de [mailto:Ronny_Bartz@msg.de]
Gesendet: Freitag, 2. Juli 2004 09:29
An: users-de@httpd.apache.org
Betreff: stoppen des httpd
hallo Liste,
ich habe im Unix einen Apache installiert, unter dem ich eigene Module
entwickelt habe. Wenn ich den Apache starte, wird als erstes der
Hauptprozess gestartet und anschließend beliebig viele Child-Prozesse.
Wenn in einem der Childs ein Fehler auftritt, der zum Beenden des selbigen
führt, startet der Apache neue Childprozesse, in denen der Fehler
zwangsweise erneut auftritt.
Gibt es eine Möglichkeit, dem Apache aus einem Childprozess heraus
mitzuteilen, dass keine weiteren Childs gestartet werden sollen bzw. dass
der Apache sich beendet?
Vielleicht durch eine bestimmte Funktion? Durch ein Signal ist es leider
nicht möglich, da der Hauptprozess unter root läuft und die Childprozsse
unter einem normalen Nutzer.
Mit freundlichen Grüßen,
Ronny Bartz
--------------------------------------------------------------------------
Apache HTTP Server Mailing List "users-de"
unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------
--------------------------------------------------------------------------
Apache HTTP Server Mailing List "users-de"
unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------