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

이것은 /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:

7.5의 systemd 버전에는 서비스의 pid가 systemd 장치의 cgroup 외부에 있는지 확인하는 추가 검사가 없습니다.

7.5 시스템을 7.7 이상으로 업데이트하는 경우에도 동일한 오류가 발생하며 실패합니다.

sysv init 스크립트를 실제 시스템 서비스 단위로 변환하면 더 나은 행운을 얻을 수 있습니다.

관련 정보