Служба, работающая на RHEL7.5, не работает на RHEL8 (служба httpd)

Служба, работающая на RHEL7.5, не работает на RHEL8 (служба httpd)

У меня есть служба, которая работала нормально с RHEL 7.5, теперь я обновился до RHEL 8, и та же служба дает сбой со следующим статусом:

Service.service - LSB: Web Server
Loaded: loaded (/etc/rc.d/init.d/Service; generated)
Active: failed (Result: protocol) since Mon 2020-04-06 12:02:21 IST; 38min ago
Docs: man:systemd-sysv-generator(8)
Process: 403 ExecStart=/etc/rc.d/init.d/Service start (code=exited, status=0/SUCCESS)

Apr 06 12:02:21 localhost.localdomain systemd[1]: Starting LSB: Web Server...
Apr 06 12:02:21 localhost.localdomain Service[403]: httpd (pid 29434) already running
Apr 06 12:02:21 localhost.localdomain systemd[1]: Service.service: Refusing to accept PID outside of service control group, acquired through unsafe symlink chain:
/usr/local/apache/logs/Service.pid
Apr 06 12:02:21 localhost.localdomain systemd[1]: Service.service: Refusing to accept PID outside of service control group, acquired through unsafe symlink chain:
/usr/local/apache/logs/Service.pid
Apr 06 12:02:21 localhost.localdomain systemd[1]: Service.service: Failed with result 'protocol'.
Apr 06 12:02:21 localhost.localdomain systemd[1]: Failed to start LSB: Web Server

Это мой Service unit, размещенный в /etc/init.d/Service, то же самое сделано для RHEL 7.5, но там эта служба работает, а в RHEL 8 — нет. Еще одна вещь, которую следует здесь отметить, — веб-сервер работает, как и ожидалось, хотя и выдает мне эту ошибку.

    #!/bin/sh
#
# chkconfig: 345 97 03
# description:Web Server
# processname: httpd
# config: /usr/local/Test/apache/conf/httpd.conf
# pidfile: /usr/local/Test/apache/logs/httpd.pid

### BEGIN INIT INFO
# Provides: Service
# Required-Start: $remote_fs $network $syslog
# Should-Start:
# Required-Stop:
# Default-Start: 3 4 5
# Default-Stop: 0 1 2 6`enter code here`
# Short-Description: Web Server
# Description: Web Server
### END INIT INFO

LANG=en_US.iso88591
export LANG

BASEDIR=/usr/local/Test/apache
PATH=$BASEDIR/bin:/usr/bin:/bin
export PATH

LD_LIBRARY_PATH=$BASEDIR/lib
export LD_LIBRARY_PATH

inst=/usr/local/Test
MIBDIRS=$inst/mibs
export MIBDIRS

case $1 in
start)
  apachectl start
  ;;
stop)
  apachectl stop
  ;;
restart)
  apachectl restart
  ;;
*)
  echo "usage: $0 { start | stop | restart }"
  ;;
esac

Помогите мне, пожалуйста.

решение1

Если вы видите в журнале запись:

Refusing to accept PID outside of service control group, acquired through unsafe symlink chain:

В версии systemd 7.5 отсутствуют дополнительные проверки для проверки того, находится ли pid службы за пределами cgroup модуля systemd.

Если бы вы обновили систему 7.5 до 7.7 или более поздней версии, она также завершилась бы с той же ошибкой.

Возможно, вам повезет больше, если вы преобразуете скрипт инициализации sysv в настоящий сервисный модуль systemd.

Связанный контент