Am o instanță Apache care începe cu o unitate systemd. Un utilizator a oprit și a repornit manual instanța. Acum systemctl raportează serviciul ca „eșuat”. În afară de oprirea și repornirea Apache, există o modalitate de a face systemd să recunoască că serviciul rulează?
Acesta este starea. (Am încercat să ascund informațiile companiei, deci dacă httpd-apache
și INT-1
nu are sens, este pentru că am eliminat o parte din șirul de caractere.)
$ systemctl status httpd-apache-int-1.service
* httpd-apache.service - Serverul Apache HTTP pentru Instanța INT-1
Încărcat: încărcat (/usr/lib/systemd/system/httpd-apache-int-1.service; activat; prestabilit furnizor: dezactivat)
Activ: eșuat (Rezultat: cod de ieșire) din miercuri 2022-05-04 15:56:39 CDT; 2 zile în urmă
Documente: man:httpd(8)
om:apachectl(8)
PID principal: 26914 (cod=ieșit, stare=0/SUCCESS)
Acesta este fișierul meu de unitate.
$ systemctl cat httpd-apache-int-1.service
# /usr/lib/systemd/system/httpd-apache-int-1.service
[Unitate]
Descriere=Serverul HTTP Apache pentru instanța INT-1
După=network.target remote-fs.target nss-lookup.target
Documentation=man:httpd(8)
Documentation=man:apachectl(8)
[Serviciu]
Tip = bifurcare
# ExecStart nu este „modul sistem” de a face lucrurile.
# Pot exista probleme cu lucruri precum alergarea mai mult
# de un „systemctl ACTION httpd-apache-int-1”
# la un moment dat. Dar folosind Environment(File) și
# systemd override pur și simplu nu fac ceea ce vreau.
ExecStart=/bin/sh -c '\
sursa /etc/sysconfig/httpd.int-1; \
sursa /opt/ca/webagent/ca_wa_env.sh ; \
sursa /opt/apache/etc/int-1/WebAgent.conf ; \
/usr/sbin/httpd $OPTIONS ; \
ieșire 0'
ExecReload=/bin/kill -USR1 ${MAINPID}
ExecStop=/bin/kill -WINCH ${MAINPID}
# Vrem ca systemd să-i acorde lui httpd ceva timp pentru a termina cu grație, dar totuși vrem
# pentru a ucide httpd după TimeoutStopSec dacă ceva a mers prost în timpul
# oprire grațioasă. În mod normal, Systemd trimite semnal SIGTERM imediat după
# ExecStop, care ar ucide httpd. Trimitem SIGCONT inutil aici pentru a da
# httpd timp pentru a termina.
KillSignal=SIGCONT
PrivateTmp=adevărat
[Instalare]
WantedBy=multi-user.target
Acestea sunt procesele care rulează.
$ ps -ef | grep [i]nt-1
apache 1030 27237 0 14:30 ? 00:00:01 /usr/sbin/httpd -k start -f /opt/apache/etc/int-1/httpd.conf
apache 3291 27237 0 May05 ? 00:00:12 /usr/sbin/httpd -k start -f /opt/apache/etc/int-1/httpd.conf
apache 9974 27237 0 May05 ? 00:00:15 /usr/sbin/httpd -k start -f /opt/apache/etc/int-1/httpd.conf
root 27237 1 0 May04 ? 00:00:05 /usr/sbin/httpd -k start -f /opt/apache/etc/int-1/httpd.conf
apache 27239 1 0 May04 ? 00:07:00 LLAWP /opt/apache/etc/int-1/WebAgent.conf -APACHE24
apache 27261 27237 0 May04 ? 00:00:41 /usr/sbin/httpd -k start -f /opt/apache/etc/int-1/httpd.conf
apache 27262 27237 0 May04 ? 00:00:37 /usr/sbin/httpd -k start -f /opt/apache/etc/int-1/httpd.conf
Alte informatii care ar putea fi utile.
Apache
Versiunea serverului: Apache/2.4.6 (Red Hat Enterprise Linux)
OS
Red Hat Enterprise Linux Server versiunea 7.9 (Maipo)
$ systemctl --version
systemd 219