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
--------------------------------------------------------------------------