Puncte:2

systemctl restart httpd Nu s-a pornit Apache HTTP Server httpd pid-ul care rulează deja

drapel cn

Iertați postarea încrucișată de la Stack Overflow, dar mi-am dat seama că aceasta era probabil cea mai bună locație pe care să o întreb.

Mi-am reconstruit recent serverul pe AWS, făcând upgrade de la Amazon Linux la Amazon Linux 2, care la fel ca Linux 1 pare a fi un furk al CentOS, acum CentOS 7. Configurația mea vhost rămâne aceeași cu versiunea anterioară, în timp ce toate celelalte fișiere de configurare sunt fișierele implicite mai noi. (Doar FYI, nu sunt sigur că are vreun rulment).

De la reconstrucție nu mai pot face systemctl reporniți httpd. Primesc eroarea Servitorul HTTP Apache httpd pid (NNNN) rulează deja.

am făcut multe de a căuta pe google și vezi că destul de mulți oameni au această eroare, dar întotdeauna se dovedește a fi ceva diferit pe care au făcut-o. Nu mă pot gândi la nimic „altfel” din ce am făcut.

Am învățat că PID-ul pe care îl văd „deja rulează”, deținut de root, este „procesul principal” și toate celelalte PID-uri, deținute de apache, sunt „procesele de lucru”. CentOS httpd rulează atât ca utilizator root, cât și ca utilizator apache

root 4461 1 0 07:18 ? 00:00:00 /usr/sbin/httpd -k reporniți
apache 4467 4461 0 07:18 ? 00:00:09 /usr/sbin/httpd -k reporniți
apache 4468 4461 0 07:18 ? 00:00:08 /usr/sbin/httpd -k reporniți
apache 4471 4461 0 07:18 ? 00:00:08 /usr/sbin/httpd -k reporniți
apache 4477 4461 0 07:18 ? 00:00:08 /usr/sbin/httpd -k reporniți
apache 4498 4461 0 07:18 ? 00:00:07 /usr/sbin/httpd -k reporniți
apache 5236 4461 0 07:19 ? 00:00:08 /usr/sbin/httpd -k reporniți
apache 5248 4461 0 07:19 ? 00:00:09 /usr/sbin/httpd -k reporniți
apache 5987 4461 0 07:20 ? 00:00:09 /usr/sbin/httpd -k reporniți
apache 5993 4461 0 07:20 ? 00:00:08 /usr/sbin/httpd -k reporniți
apache 5994 4461 0 07:20 ? 00:00:09 /usr/sbin/httpd -k reporniți
# systemctl restart httpd;systemctl status httpd;
Lucrarea pentru httpd.service a eșuat. Consultați „systemctl status httpd.service” și „journalctl -xe” pentru detalii.
â httpd.service - Serverul Apache HTTP
   Încărcat: încărcat (/usr/lib/systemd/system/httpd.service; dezactivat; prestabilit furnizor: dezactivat)
   Activ: eșuat (Rezultat: protocol) din joi 2021-12-23 19:56:05 UTC; acum 4 ms
     Documente: man:httpd.service(8)
  Proces: 31799 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exit, status=0/SUCCESS)
 PID principal: 31799 (cod=ieșit, stare=0/SUCCESS)
   Stare: „Se citește configurația...”

23 decembrie 19:56:04 ip-10-5-11-55.ec2.internal systemd[1]: Pornirea serverului Apache HTTP...
23 decembrie 19:56:05 ip-10-5-11-55.ec2.internal httpd[31799]: httpd (pid 4461) deja rulează
Dec 23 19:56:05 ip-10-5-11-55.ec2.internal systemd[1]: Nu s-a pornit Apache HTTP Server.
Dec 23 19:56:05 ip-10-5-11-55.ec2.internal systemd[1]: Unitatea httpd.service a intrat în starea eșuată.
Dec 23 19:56:05 ip-10-5-11-55.ec2.internal systemd[1]: httpd.service a eșuat.

Nimic neobișnuit în jurnalul de erori Apache:

[Joi, 23 decembrie 07:18:58.777745 2021] [suexec:notice] [pid 4460] AH01232: mecanism suEXEC activat (wrapper: /usr/sbin/suexec)
[Joi 23 Dec 07:18:58.802753 2021] [lbmethod_heartbeat:notice] [pid 4461] AH02282: Fără slotmem de la mod_heartmonitor
[Joi Dec 23 07:18:58.802850 2021] [http2:warn] [pid 4461] AH10034: Modulul mpm (prefork.c) nu este acceptat de mod_http2. MPM determină modul în care sunt procesate lucrurile pe serverul tău. HTTP/2 are mai multe
[Joi 23 Dec 07:18:58.847386 2021] [mpm_prefork:notice] [pid 4461] AH00163: Apache/2.4.51 () PHP/7.4.21 configurat -- reluarea operațiunilor normale
[Joi, 23 decembrie 07:18:58.847414 2021] [core:notice] [pid 4461] AH00094: Linia de comandă: „/usr/sbin/httpd”

Dacă opresc acest PID „master”, atunci pot reporni fără probleme.

# ucide 4461
# systemctl restart httpd;systemctl status httpd;
â httpd.service - Serverul Apache HTTP
   Încărcat: încărcat (/usr/lib/systemd/system/httpd.service; dezactivat; prestabilit furnizor: dezactivat)
   Activ: activ (în rulare) din joi 23-12-2021 20:01:31 UTC; acum 6 ms
     Documente: man:httpd.service(8)
 PID principal: 3091 (httpd)
   Stare: „Configurație încărcată”.
   CGroup: /system.slice/httpd.service
           ââ3091 /usr/sbin/httpd -DFOREGROUND

23 dec 20:01:31 ip-10-5-11-55.ec2.internal systemd[1]: Pornirea serverului Apache HTTP...
23 decembrie 20:01:31 ip-10-5-11-55.ec2.internal systemd[1]: A pornit serverul Apache HTTP.
# ps -Af | grep httpd
root 3145 1 1 20:01 ? 00:00:00 /usr/sbin/httpd -DFORGROUND
apache 3147 3145 0 20:01 ? 00:00:00 /usr/sbin/httpd -DFORGROUND
apache 3153 3145 0 20:01 ? 00:00:00 /usr/sbin/httpd -DFORGROUND
apache 3171 3145 0 20:01 ? 00:00:00 /usr/sbin/httpd -DFORGROUND
apache 3177 3145 0 20:01 ? 00:00:00 /usr/sbin/httpd -DFORGROUND
apache 3183 3145 0 20:01 ? 00:00:00 /usr/sbin/httpd -DFORGROUND

Sfatul majorității oamenilor este „doar să omorâți procesul”, Apache nu reușește să pornească, rulează deja, dar nu mașinează fișierul pid? dar am nevoie ca asta să funcționeze nesupravegheat. La ce altceva aș putea să mă uit?

digijay avatar
drapel mx
_"Modulul mpm (prefork.c) nu este acceptat de mod_http2":_ remediați mai întâi acest lucru prin schimbarea în `mpm_worker` sau `mpm_event`
drapel cn
@digijay Da, știu, dar există probleme cu echilibrarea încărcării HTTP2 și AWS, așa că nu sunt îngrijorat de asta.Și acest mesaj de avertizare a fost prezent pe vechiul server, deci este legat de problema actuală.
drapel cn
Am vrut să spun „nu” legat
Puncte:0
drapel cn

Deși am căutat mult, nu am găsit răspunsuri care au fost date pentru alte variante de Linux.Am ajuns la răspuns când am observat că httpd a fost inițial pornit cu „apachectl” și încercam să repornesc folosind „systemctl” și m-am gândit că aceasta ar putea fi problema. Cand am cautat asta am gasit multe raspunsuri. Acesta pare a fi cel mai concis: https://unix.stackexchange.com/questions/240528/apache-and-systemd

În altele, vedeți aceeași problemă pe care am experimentat-o ​​și care este că odată ce începeți cu apachectl, trebuie să rămâneți cu el, deoarece systemd nu poate ști ce ați făcut cu apachectl, deoarece folosește o altă configurație.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.