데몬 작성 중 /etc/rc.d/init.d/functions가 중단됩니다.

데몬 작성 중 /etc/rc.d/init.d/functions가 중단됩니다.

Fedora 23용 서비스 데몬을 직접 작성 중인데 소스 라이브러리를 포함할 때 스크립트가 중단되면 멈춥니다.

#!/bin/sh
#
# service-live-text-relation <summary>
#
# chkconfig:   2345 80 20
# description: Starts and stops a single service-live-text-relation instance on this system
#

### BEGIN INIT INFO
# Provides: service-live-text-relation
# Required-Start: $network $named
# Required-Stop: $network $named
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: This service manages the service-live-text-relation daemon
# Description: service-live-text-relation
### END INIT INFO

#
# init.d / servicectl compatibility (openSUSE)
#
if [ -f /etc/rc.status ]; then
    . /etc/rc.status
    rc_reset
fi

echo "test1"

#
# Source function library.
#
if [ -f /etc/rc.d/init.d/functions ]; then
    . /etc/rc.d/init.d/functions
fi

#. /etc/init.d/functions

echo "test2";

#... further code goes here ...

다음 명령을 실행합니다.

/bin/systemctl daemon-reload
chkconfig --add service-live-text-relation
chkconfig service-live-text-relation on
/bin/systemctl enable service-live-text-relation.service

내가 실행할 때 :

service service-live-text-relation start

다음과 같은 결과가 나타납니다.

test1
Starting service-live-text-relation (via systemctl):

그리고 스크립트가 중단됩니다 ...

예제를 따르고 다른 스크립트를 봤지만 내 스크립트에 어떤 오류가 있는지 식별할 수 없습니다.

답변1

나는 당신이 시스템 호환성 문제로 어려움을 겪고 있다고 생각합니다. systemd 지원 시스템에서 /etc/init.d의 파일은 systemd에 의해 처리됩니다. "service" 명령은 "귀엽고"(도움이 되는) 방식으로 서비스를 시작하려고 시도하는 쉘 스크립트일 뿐입니다. "/etc/init.d/service-live-text-relation"을 수동으로 실행해 보셨나요?

시스템 호환성이 어떻게 작동하는지 모르므로 도움을 드릴 수 없습니다. 다른 init.d 서비스 제어 스크립트와 같이 올바른 "시작", "중지", "다시 시작"(등) 대상이 있다면 이를 작동시킬 수 있다고 확신합니다.

하지만 당신은진짜시스템 단위 파일을 생성해야 합니다. /etc/systemd/user에 "service-live-text-relation.service"라는 단위 파일을 추가해 보세요. "man systemd.service"(및 모든 친구)를 확인하십시오. 시스템화된 세상이 되어가고 있으므로 시작 파일을 업데이트하는 것이 좋습니다. IMHO.

관련 정보