Pardonnez le post croisé de Stack Overflow mais j'ai réalisé que c'était probablement le meilleur endroit pour demander.
J'ai récemment reconstruit mon serveur sur AWS, en passant d'Amazon Linux à Amazon Linux 2, qui comme Linux 1 semble être un fork de CentOS, maintenant CentOS 7. La configuration de mon serveur virtuel reste la même que celle de la version précédente, tandis que tous les autres fichiers de configuration sont les nouveaux fichiers par défaut. (Juste pour info, je ne suis pas sûr que cela ait une quelconque incidence).
Depuis la reconstruction, je ne peux plus faire systemctl restart httpd
. Je reçois l'erreur The Apache HTTP Server httpd pid (NNNN) already running
.
J'ai fait lots J'ai fait des recherches sur Internet et j'ai vu que de nombreuses personnes avaient ce problème, mais il s'agit toujours de quelque chose de différent. différents qu'ils ont fait. Je ne peux pas penser à quelque chose de "différent" que j'ai fait.
J'ai appris que le PID que je vois comme "déjà en cours d'exécution", appartenant à root, est le "processus maître" et que tous les autres PID, appartenant à apache, sont les "processus ouvriers". CentOS httpd fonctionne à la fois en tant que root et utilisateur apache
root 4461 1 0 07:18 ? 00:00:00 /usr/sbin/httpd -k restart
apache 4467 4461 0 07:18 ? 00:00:09 /usr/sbin/httpd -k restart
apache 4468 4461 0 07:18 ? 00:00:08 /usr/sbin/httpd -k restart
apache 4471 4461 0 07:18 ? 00:00:08 /usr/sbin/httpd -k restart
apache 4477 4461 0 07:18 ? 00:00:08 /usr/sbin/httpd -k restart
apache 4498 4461 0 07:18 ? 00:00:07 /usr/sbin/httpd -k restart
apache 5236 4461 0 07:19 ? 00:00:08 /usr/sbin/httpd -k restart
apache 5248 4461 0 07:19 ? 00:00:09 /usr/sbin/httpd -k restart
apache 5987 4461 0 07:20 ? 00:00:09 /usr/sbin/httpd -k restart
apache 5993 4461 0 07:20 ? 00:00:08 /usr/sbin/httpd -k restart
apache 5994 4461 0 07:20 ? 00:00:09 /usr/sbin/httpd -k restart
# systemctl restart httpd;systemctl status httpd;
Job for httpd.service failed. See "systemctl status httpd.service" and "journalctl -xe" for details.
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: failed (Result: protocol) since Thu 2021-12-23 19:56:05 UTC; 4ms ago
Docs: man:httpd.service(8)
Process: 31799 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=0/SUCCESS)
Main PID: 31799 (code=exited, status=0/SUCCESS)
Status: "Reading configuration..."
Dec 23 19:56:04 ip-10-5-11-55.ec2.internal systemd[1]: Starting The Apache HTTP Server...
Dec 23 19:56:05 ip-10-5-11-55.ec2.internal httpd[31799]: httpd (pid 4461) already running
Dec 23 19:56:05 ip-10-5-11-55.ec2.internal systemd[1]: Failed to start The Apache HTTP Server.
Dec 23 19:56:05 ip-10-5-11-55.ec2.internal systemd[1]: Unit httpd.service entered failed state.
Dec 23 19:56:05 ip-10-5-11-55.ec2.internal systemd[1]: httpd.service failed.
Rien d'inhabituel dans le journal des erreurs d'Apache :
[Thu Dec 23 07:18:58.777745 2021] [suexec:notice] [pid 4460] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Thu Dec 23 07:18:58.802753 2021] [lbmethod_heartbeat:notice] [pid 4461] AH02282: No slotmem from mod_heartmonitor
[Thu Dec 23 07:18:58.802850 2021] [http2:warn] [pid 4461] AH10034: The mpm module (prefork.c) is not supported by mod_http2. The mpm determines how things are processed in your server. HTTP/2 has more
[Thu Dec 23 07:18:58.847386 2021] [mpm_prefork:notice] [pid 4461] AH00163: Apache/2.4.51 () PHP/7.4.21 configured -- resuming normal operations
[Thu Dec 23 07:18:58.847414 2021] [core:notice] [pid 4461] AH00094: Command line: '/usr/sbin/httpd'
Si je tue ce PID "maître", alors je peux faire des redémarrages sans problème.
# kill 4461
# systemctl restart httpd;systemctl status httpd;
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: active (running) since Thu 2021-12-23 20:01:31 UTC; 6ms ago
Docs: man:httpd.service(8)
Main PID: 3091 (httpd)
Status: "Configuration loaded."
CGroup: /system.slice/httpd.service
3091 /usr/sbin/httpd -DFOREGROUND
Dec 23 20:01:31 ip-10-5-11-55.ec2.internal systemd[1]: Starting The Apache HTTP Server...
Dec 23 20:01:31 ip-10-5-11-55.ec2.internal systemd[1]: Started The Apache HTTP Server.
# ps -Af | grep httpd
root 3145 1 1 20:01 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 3147 3145 0 20:01 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 3153 3145 0 20:01 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 3171 3145 0 20:01 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 3177 3145 0 20:01 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 3183 3145 0 20:01 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
Le conseil de la plupart des gens est de "tuer le processus", Apache ne démarre pas, il fonctionne déjà mais n'utilise pas le fichier pid ? mais j'ai besoin que ça fonctionne sans surveillance. Qu'est-ce que je pourrais voir d'autre ?
0 votes
"Le module mpm (prefork.c) n'est pas supporté par mod_http2" : corrigez d'abord ce problème en passant à
mpm_worker
ompm_event
0 votes
@digijay Oui, je sais, mais il y a des problèmes avec HTTP2 et l'équilibrage de la charge d'AWS, donc je ne suis pas concerné par cela. Et ce message d'avertissement était présent sur l'ancien serveur, donc il est lié au problème actuel.
0 votes
Je voulais dire "pas" lié