Mise à jour: Répondre au commentaire:
vérifier les processus d'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
vérification du journal des erreurs apache
$ 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: j'ai arrêté Apache, mais pourquoi il a toujours le même nombre de processus en cours d'exécution?
$ 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
Merci!
Réponses:
Cela peut se produire occasionnellement quand Apache refuse de s'arrêter correctement ou a des processus zombies . Pour les premiers, vous pouvez tuer tous les processus en cours d'exécution avec
sudo killall -9 apache2
; cependant, pour ces derniers, vous devrez simplement attendre qu'ils s'en aillent. Dans le cas où Apache ne voudrait pas s'arrêter correctement, ce que vous voudrez vraiment faire, c'est enquêter sur ce qui se passe. Il peut cependant être difficile de savoir exactement ce qui se passe.Un
strace
identifiant interactif du processus peut donner un indice sur les sites qui agissent et provoquent des problèmes. De ce qui précède,ps -A
vous pouvez vérifier le premier processus avecCela sera attaché à la trace de la pile des processus en cours d'exécution, fournissant une sortie en direct de ce qui se passe. À tout moment, vous pouvez Ctrl+C
Une ressource supplémentaire est le journal des erreurs principal pour Apache. Vous pouvez le trouver dans
/var/log/apache2/error.log
Vous voudrez obtenir un morceau décent du journal et le parcourir pour plus de détails. Si le problème est un problème en cours d'exécutionCette opération similaire à
strace
s'exécutera en temps réel. Pour les dernières N lignes, remplacez-f
par-#
où#
est un nombre positif comme 50, 100, 282, etc.la source
Assurez-vous que vous disposez des autorisations appropriées pour arrêter le service.
Si vous exécutez:
vous n'obtiendrez aucune erreur simplement:
Essayer:
la source
Moi aussi, j'ai eu le même problème et j'ai essayé ce qui suit:
pour arrêter le service, et
pour le recommencer.
Cela fonctionne pour moi, toutes les suggestions possibles sont les bienvenues.
la source
La commande a
systemctl stop apache2
fonctionné pour moi.la source
On peut demander aux processus (en leur envoyant un signal ) de s'arrêter. La
kill
commande est un moyen de le faire. Si vous connaissez l'ID de processus (PID) du processus, vous pouvez le demander en exécutant la commande ci-dessous dans un terminal:L'exemple ci-dessus envoie au PID le signal TERM par défaut (code 15). Vous pouvez rechercher les codes de signal dans la page de manuel de kill (
man kill
).Lorsque le programme ne tient pas compte du signal TERM qui leur est envoyé, il est toujours possible d'appliquer un peu plus de pression en envoyant le signal KILL (code 9). Ce signal est utilisé en dernier recours, car le processus peut ne pas enregistrer de données non enregistrées.
La spécification de a
-SIGNAL_CODE
comme premier paramètre avant l'ID de processus enverra au processus le signal spécifique. Une autre fonctionnalité utile de lakill
commande est que vous pouvez spécifier plus de PID comme dans l'exemple suivant:Essayez de terminer les processus Apache en utilisant la
kill -9
ligne. Ils devraient s'arrêter à moins que quelque chose ne les empêche de le faire.la source
J'ai eu le même problème mais vous ne pouvez pas faire une seule
service apache2 stop
commande - vous devez faire un processus PER . Ensuite, vous POUVEZ vouloir ajouter unsudo
devant juste au cas où vous êtes connecté à un compte impair qui en a besoin, donc si vous voyez 9 processus en cours d'exécution, faites 9sudo service apache2 stop
A très bien fonctionné pour moi.
la source
Après avoir installé nginx, mon apache a cessé de fonctionner correctement. Semble dans certains cas apache confondre avec nginx. Il suffit de supprimer nginx
la source