Update: Auf den Kommentar antworten:
Überprüfen Sie die Prozesse von Apache:
$ ps a | grep apache 3
grep: 3: No such file or directory
$ ps a | grep apache
4514 pts/0 S+ 0:00 grep --color=auto apache
$ ps a | grep apache2
4516 pts/0 S+ 0:00 grep --color=auto apache2
Überprüfen des Apache-Fehlerprotokolls
$ tail /var/log/apache2/error.log
[Sun Aug 07 03:14:19 2011] [notice] Apache/2.2.16 (Ubuntu) PHP/5.3.3-1ubuntu9.5 with Suhosin-Patch configured -- resuming normal operations
[Mon Aug 08 03:13:58 2011] [notice] Graceful restart requested, doing restart
[Mon Aug 08 03:14:00 2011] [notice] Apache/2.2.16 (Ubuntu) PHP/5.3.3-1ubuntu9.5 with Suhosin-Patch configured -- resuming normal operations
[Mon Aug 08 09:03:16 2011] [notice] caught SIGTERM, shutting down
[Mon Aug 08 09:05:47 2011] [notice] Apache/2.2.16 (Ubuntu) PHP/5.3.3-1ubuntu9.5 with Suhosin-Patch configured -- resuming normal operations
Original: Ich habe Apache gestoppt, aber warum laufen immer noch so viele Prozesse?
$ ps -A | grep apache
1663 ? 00:00:00 apache2
1667 ? 00:00:00 apache2
1668 ? 00:00:00 apache2
1669 ? 00:00:00 apache2
1670 ? 00:00:00 apache2
1671 ? 00:00:00 apache2
$ /etc/init.d/apache2 stop
* Stopping web server apache2 [ OK ]
$ ps -A | grep apache
1663 ? 00:00:00 apache2
1667 ? 00:00:00 apache2
1668 ? 00:00:00 apache2
1669 ? 00:00:00 apache2
1670 ? 00:00:00 apache2
1671 ? 00:00:00 apache2
Vielen Dank!
Antworten:
Dies kann gelegentlich vorkommen, wenn sich Apache weigert, ordnungsgemäß zu stoppen, oder wenn Zombie-Prozesse ausgeführt werden . Bei ersteren können Sie alle laufenden Prozesse mit
sudo killall -9 apache2
beenden. Für letztere musst du einfach warten, bis sie verschwunden sind. Für den Fall, dass Apache nicht nett aufhören will, müssen Sie wirklich nachforschen, was los ist. Es kann jedoch schwierig sein, genau herauszufinden, was los ist.Eine Interaktion
strace
der Prozess-ID kann einen Hinweis darauf geben, welche Sites aktiv sind und Probleme verursachen. Von obenps -A
können Sie den ersten Vorgang mit überprüfenDies hängt mit dem Stack-Trace der laufenden Prozesse zusammen und liefert eine Live-Ausgabe der aktuellen Vorgänge. Sie können jederzeit Ctrl+C
Eine zusätzliche Ressource ist das Hauptfehlerprotokoll für Apache. Sie finden es in.
/var/log/apache2/error.log
Sie möchten einen anständigen Teil des Protokolls abrufen und es für Details überfliegen. Wenn das Problem weiterhin bestehtDies
strace
läuft ähnlich wie das in Echtzeit. Ersetzen Sie für die letzten N Zeilen-f
mit,-#
wo#
eine positive Zahl wie 50, 100, 282 usw. ist.quelle
Stellen Sie sicher, dass Sie über die erforderlichen Berechtigungen zum Beenden des Dienstes verfügen.
Wenn du läufst:
Sie erhalten keine Fehlermeldung, nur:
Versuchen:
quelle
Ich hatte auch das gleiche Problem und versuchte Folgendes:
den Dienst zu beenden, und
um es erneut zu starten.
Es funktioniert bei mir, eventuelle Vorschläge sind willkommen.
quelle
Der Befehl
systemctl stop apache2
hat bei mir funktioniert.quelle
Prozesse können aufgefordert werden (durch Senden eines Signals an sie), zu stoppen. Der
kill
Befehl ist eine Möglichkeit, dies zu tun. Wenn Sie die Prozess-ID (PID) des Prozesses kennen, können Sie diese auf einfache Weise abfragen, indem Sie den folgenden Befehl in einem Terminal ausführen:Das obige Beispiel sendet der PID das Standard-TERM-Signal (Code 15). Sie können die Signalcodes in der Manpage von kill (
man kill
) nachschlagen .Wenn das Programm das an sie gesendete TERM-Signal ignoriert, kann durch Senden des KILL-Signals (Code 9) noch etwas mehr Druck ausgeübt werden. Dieses Signal wird als letzter Ausweg verwendet, da der Prozess möglicherweise keine nicht gespeicherten Daten speichert.
Wenn Sie a
-SIGNAL_CODE
als ersten Parameter vor der Prozess-ID angeben, sendet der Prozess das spezifische Signal. Eine weitere nützliche Funktion deskill
Befehls besteht darin, dass Sie wie im folgenden Beispiel weitere PIDs angeben können:Versuchen Sie, die Apache-Prozesse über die
kill -9
Leitung zu beenden . Sie sollten aufhören, es sei denn, etwas hindert sie daran.quelle
Ich hatte das gleiche Problem, aber Sie können nicht nur einen
service apache2 stop
Befehl ausführen - Sie müssen einen PER- Prozess ausführen . Dann möchten Sie möglicherweise ein "sudo
Vorne" hinzufügen, nur für den Fall, dass Sie in einem ungeraden Konto angemeldet sind, das dies benötigt. Wenn 9 Prozesse ausgeführt werden, führen Sie 9 aussudo service apache2 stop
Hat super für mich funktioniert.
quelle
Nach der Installation von Nginx funktionierte mein Apache nicht mehr richtig. Scheint in einigen Fällen Apache mit Nginx zu verwechseln. Nginx einfach entfernen
quelle