Das Starten von Apache beim Beenden des Dienstes mit SIGWINCH


12

Beim Ausführen service apache startsehe ich in der Protokolldatei diesen Eintrag:

[mpm_event:notice] [pid 1906:tid XXX] AH00489: Apache/2.4.23 (Unix)
                         OpenSSL/1.0.2g PHP/7.0.9 configured -- resuming normal operations
[core:notice] [pid 1906:tid XXX] AH00094: Command line: '/usr/sbin/httpd'
[mpm_event:notice] [pid 1906:tid XXX] AH00492: caught SIGWINCH, shutting down gracefully

und der Dienst apachestartet nicht? Ich kann im Internet finden, was SIGWINCH[ Window size change] bedeutet, aber es hilft mir in diesem Fall nicht wirklich.

Die Datei /etc/systemd/system/apache.service:

[Unit]
Description=The Apache Webserver [FaF Compiled]
After=network.target nss-lookup.target time-sync.target
Before=getty@tty1.service plymouth-quit.service xdm.service

[Service]
Type=notify
PrivateTmp=true
ExecStart=/usr/sbin/httpd -k start
ExecReload=/usr/sbin/httpd -k graceful
ExecStop=/usr/sbin/httpd -k graceful-stop
KillMode=mixed

[Install]
WantedBy=multi-user.target
Alias=httpd.service apache.service

Läuft auf SLES 12 SP1. Ich habe Apache selbst kompiliert. Das Starten mit apachectl -k startfunktioniert perfekt und ich kann auf den PHP-Code zugreifen und ihn ausführen.

Meine Frage: Was mache ich falsch, dass der apacheDienst nicht startet. Ich habe es mit aktiviert systemctl enable apache. Dies war die Ausgabe:

ln -s '/usr/lib/systemd/system/apache2.service' '/etc/systemd/system/httpd.service'
ln -s '/usr/lib/systemd/system/apache2.service' '/etc/systemd/system/apache.service'
ln -s '/usr/lib/systemd/system/apache2.service' '/etc/systemd/system/multi-user.target.wants/apache2.service'

Wie wurden SIGWINCHtödlich gemacht? Die Standardaktion besteht darin, das Signal zu verwerfen.
Thrig

Antworten:


2

systemdweist Apache an, mit anzuhalten graceful-stop, was ein SIGWINCHSignal und damit das Protokoll erzeugt caught SIGWINCH, shutting down gracefully. (das SIGWINCHSignal wird (ab) von Apache verwendet)

IMO, es besteht die Möglichkeit eines weiteren Fehlers, einschließlich Konfigurationsfehlern, der zum Stoppen führt, und Sie betrachten verwandte Symptome, die normales Verhalten sind.

Ich würde empfehlen, Ihre Apache-Fehlerprotokolle zu lesen, normalerweise standardmäßig in SLES unter dem Verzeichnis /var/log/apache2.


1

Ich habe ein ähnliches Problem bei RedHat gefunden . Geschlossen mit dem Status "NOTABUG". Eventuell als falsche Konfiguration erkannt.

img # 1 1


img # 2 2


img # 3 3


AKTUALISIEREN

Ich habe ein weiteres ähnliches Problem gefunden, das bei einem Serverfehler gemeldet wurde . Und noch eine in der Antwort darauf, im Bild unten.

img 1/1Geben Sie hier die Bildbeschreibung ein


-DFOREGROUNDhilft in meinem Fall nicht. Apache startet zwar, kehrt aber nicht zurück serviceund servicebeschwert sich daher beiapache2.service start operation timed out. Terminating.
Al Bundy

Hast du den Thread im Link gelesen?

1
Ich gab auf. Ich verstehe die Situation, habe aber keine Ahnung, wie ich sie beheben kann. Ich habe herausgefunden, wann ich ExecReload=von /usr/lib/systemd/system/apache2.servicedann entferne, SIGWINCHwird nicht gesendet, aber dann startet Apache nicht - keine Fehlermeldung im Protokoll, nichts. Es wird nur sofort beendet, wenn es gestartet wurde. Ich habe jetzt den Hack implementiert, den ich apachectl -k startals Cron-Job beim Systemstart ausführe . Ich kann Apache mit neu starten apachectl -k restart. Ich werde es später versuchen; Vielleicht bekomme ich neue Ideen.
Al Bundy

Ich fand noch einen, anders. Siehe Update.

0

Aus einem Kommentar zum Red Hat-Fehlerbericht, der mit Tomasz 'Antwort verknüpft ist :

Es sieht so aus, als müssten Sie 00-systemd.conf ausführen, wenn systemd erkennen soll, dass httpd erfolgreich gestartet wurde.

Ich habe das ausgeführt und es hat funktioniert:

ln -sr /etc/httpd/conf.modules.d/00-systemd.conf /etc/httpd/conf.d/00-systemd.conf
systemctl restart httpd

Ich bin auf Amazon Linux 2 (wird wahrscheinlich auch auf RHEL / Centos 7 funktionieren).


Vielen Dank für die Anerkennung, aber ... woher hast du das?
G-Man sagt "Reinstate Monica"

@ G-Man Ich habe diese Antwort bearbeitet, um das Zitat korrekt zuzuordnen.
Anthony Geoghegan
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.