У меня есть экземпляр Apache, который начинается с модуля systemd. Пользователь вручную остановил и перезапустил экземпляр. Теперь systemctl сообщает о сбое службы. Помимо остановки и перезапуска Apache, есть ли способ заставить systemd распознать, что служба запущена?
Это статус. (Я пытался скрыть информацию о компании, так что если httpd-apache
и ИНТ-1
не имеет смысла, это потому, что я удалил часть строки символов.)
$ статус systemctl httpd-apache-int-1.service
* httpd-apache.service — HTTP-сервер Apache для экземпляра INT-1.
Загружено: загружено (/usr/lib/systemd/system/httpd-apache-int-1.service; включено; предустановка поставщика: отключена)
Активно: сбой (результат: код выхода) со среды 04.05.2022 15:56:39 CDT; 2 дня спустя
Документы: человек:httpd(8)
мужчина: апачектл (8)
Основной PID: 26914 (код=выход, статус=0/УСПЕХ)
Это мой модульный файл.
$ systemctl кошка httpd-apache-int-1.service
# /usr/lib/systemd/system/httpd-apache-int-1.service
[Ед. изм]
Description=HTTP-сервер Apache для экземпляра INT-1
After=network.target remote-fs.target nss-lookup.target
Документация=man:httpd(8)
Документация=человек:apachectl(8)
[Оказание услуг]
Тип = разветвление
# ExecStart не является "системным способом" работы.
# Могут быть проблемы с такими вещами, как бег больше
# больше одного "systemctl ACTION httpd-apache-int-1"
# вовремя. Но используя Environment (File) и
# переопределение systemd просто не делает то, что я хочу.
ExecStart=/bin/sh -c '\
источник /etc/sysconfig/httpd.int-1 ; \
источник /opt/ca/webagent/ca_wa_env.sh ; \
источник /opt/apache/etc/int-1/WebAgent.conf ; \
/usr/sbin/httpd $ОПЦИИ ; \
выход 0'
ExecReload=/bin/kill -USR1 ${MAINPID}
ExecStop=/bin/kill -WINCH ${MAINPID}
# Мы хотим, чтобы systemd дал httpd некоторое время для корректного завершения, но все же хотим
# убить httpd после TimeoutStopSec, если что-то пошло не так во время
# изящная остановка. Обычно Systemd отправляет сигнал SIGTERM сразу после
# ExecStop, который уничтожит httpd. Мы посылаем бесполезный SIGCONT сюда, чтобы дать
# httpd пора заканчивать.
KillSignal=SIGCONT
PrivateTmp=истина
[Установить]
WantedBy=многопользовательская.цель
Это запущенные процессы.
$пс-эф | grep [i] nt-1
апач 1030 27237 0 14:30 ? 00:00:01 /usr/sbin/httpd -k start -f /opt/apache/etc/int-1/httpd.conf
апач 3291 27237 0 мая 05 ? 00:00:12 /usr/sbin/httpd -k start -f /opt/apache/etc/int-1/httpd.conf
апач 9974 27237 0 май 05 ? 00:00:15 /usr/sbin/httpd -k start -f /opt/apache/etc/int-1/httpd.conf
корень 27237 1 0 May04 ? 00:00:05 /usr/sbin/httpd -k start -f /opt/apache/etc/int-1/httpd.conf
апач 27239 1 0 май 04 ? 00:07:00 LLAWP /opt/apache/etc/int-1/WebAgent.conf-APACHE24
апач 27261 27237 0 май 04 ? 00:00:41 /usr/sbin/httpd -k start -f /opt/apache/etc/int-1/httpd.conf
апач 27262 27237 0 май 04 ? 00:00:37 /usr/sbin/httpd -k start -f /opt/apache/etc/int-1/httpd.conf
Другая информация, которая может быть полезна.
Апачи
Версия сервера: Apache/2.4.6 (Red Hat Enterprise Linux)
Операционные системы
Red Hat Enterprise Linux Server, выпуск 7.9 (Maipo)
$ systemctl --версия
системд 219