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?