Thread Erneutes Laden eines Moduls erzwingen (13 answers)
Opened by brela at 2007-08-03 20:49

ptk
 2007-08-05 18:40
#97564 #97564
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Der Originalposter schreibt zwar, dass die Module in einem Perlskript (Apache::Registry?) eingebunden sind, aber er schreibt nicht, ob die Module schon im httpd.conf referenziert wurden. Wenn sie schon bereits in httpd.conf referenziert wurden (was sinnvoll ist, wenn man beispielsweise frühzeitig Kompilierfehler erkennen will oder davon profitieren kann, dass Module nur im Haupt-Apache-Prozess geladen und kompiliert werden müssen und nicht auch noch bei jedem Child), dann wird eben bei einer Moduländerung nichts mehr nachgeladen, weil ein "apachectl graceful" sich nur auf die Childs auswirkt und nicht auf den Haupt-Apache-Prozess. Naja, nicht ganz, auch bei einem "apachectl graceful" wird auch das httpd.conf neu eingelesen. Aber bereits geladene Module werden nicht noch einmal geladen.

Eine "apachectl graceful" schickt übrigens gar keine Signale an die Apache-Childs, sondern der Haupt-Apache-Prozess wartet so lange, bis ein Child mit einem Request fertig ist, beendet diesen und startet ggfs. einen neuen Child-Prozess. Bei "apachectl restart" wird dagegen ein SIGTERM an die Apache-Childs geschickt. Der Standard-Signalhandler sorgt dafür, dass diese Childs sofort beendet werden und die Benutzer wahrscheinlich einen 500er oder ähnliches sehen.

View full thread Erneutes Laden eines Moduls erzwingen