내 서비스는 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
이것은 RHEL 7.5와 동일하게 /etc/init.d/Service 아래에 있는 내 서비스 단위이지만 서비스가 실행 중이지만 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 스크립트를 실제 시스템 서비스 단위로 변환하면 더 나은 행운을 얻을 수 있습니다.