Init.d 스크립트가 시작 시 작동하지 않습니다. SYSV를 시작할 수 없습니다.

Init.d 스크립트가 시작 시 작동하지 않습니다. SYSV를 시작할 수 없습니다.

시스템 시작 시 Keystone CMS가 실행되지 않습니다. 이 init.d시작 스크립트 에 문제가 있을 수 있습니다 . 권한을 설정했지만 여전히 문제가 있습니다.

$ sudo systemctl daemon-reload
$ sudo service keystone start
Job for keystone.service failed. See 'systemctl status keystone.service' and 'journalctl -xn' for details.
$ sudo service keystone status
● keystone.service - SYSV: Keystone server daemon
   Loaded: loaded (/etc/init.d/keystone)
   Active: failed (Result: exit-code) since Thu 2016-10-13 07:39:12 UTC; 16s ago
  Process: 2785 ExecStart=/etc/init.d/keystone start (code=exited, status=203/EXEC)
 Main PID: 2698 (code=exited, status=216/GROUP)

Oct 13 07:39:12 test-vm systemd[2785]: Failed at step EXEC spawning /etc/init.d/keystone: Exec format error
Oct 13 07:39:12 test-vm systemd[1]: keystone.service: control process exited, code=exited status=203
Oct 13 07:39:12 test-vm systemd[1]: Failed to start SYSV: Keystone server daemon.
Oct 13 07:39:12 test-vm systemd[1]: Unit keystone.service entered failed state.

아마도 스크립트 자체가 생성될 것입니다.템플릿에서. 나는 또한 그것을 /etc/rc?.d디렉토리 중 하나에 연결하는 것을 고려하고 있습니다.

데비안 8.6을 사용하고 있습니다

/etc/init.d/keystone:

Subsystem file for "Keystone" server
#
# chkconfig: 2345 95 05
# description: Keystone server daemon

RETVAL=0
prog="keystone"

start() {       
        echo -n $"Starting $prog:"

        cd /home/user/keystone
        /opt/bitnami/nodejs/bin/node  /home/user/keystone/keystone.js

        RETVAL=$?
        [ "$RETVAL" = 0 ] && touch /var/lock/subsys/$prog
        echo
}

stop() {        
        echo -n $"Stopping $prog:"

        killproc $prog -TERM
        RETVAL=$?
        [ "$RETVAL" = 0 ] && rm -f /var/lock/subsys/$prog
        echo
}

reload() {
        echo -n $"Reloading $prog:"
        killproc $prog -HUP
        RETVAL=$?
        echo
}

case "$1" in
        start)
                start
                ;;
        stop)
                stop
                ;;
        restart)
                stop
                start
                ;;
        reload)
                reload
                ;;
        condrestart)
                if [ -f /var/lock/subsys/$prog ] ; then
                        stop
                        # avoid race
                        sleep 3
                        start
                fi
                ;;
        status)
                status $prog
                RETVAL=$?
                ;;
        *)
                echo $"Usage: $0 {start|stop|restart|reload|condrestart|status}"
                RETVAL=1
esac
exit $RETVAL

답변1

프로세스: 2785 ExecStart=/etc/init.d/keystone start(코드=종료, 상태=203/EXEC)
Oct 13 07:39:12 test-vm systemd[2785]: EXEC 단계에서 /etc/init.d/keystone을 생성하지 못했습니다: Exec 형식 오류

...완전히 맞는 말이에요. 귀하의 파일은 실행 가능한 스크립트가 아닙니다. 번역이 부족합니다. 이는 또한 오래된 van Smoorenburg 스크립트에 대한 데비안 정책에 지정된 올바른 형식이 아니므 rc로 systemd는 설명에 접두사 " SYSV:"(" " 대신)를 추가합니다.LSB:

그러나 그것을 고치는 것도 시간낭비이다. 멀리 던져. 시스템 서비스 단위를 작성합니다.

[단위]
설명=키스톤 CMS
문서=http://unix.stackexchange.com/a/316168/5132

[제공하다]
작업 디렉터리=/home/user/keystone
ExecStart=/opt/bitnami/nodejs/bin/node /home/user/keystone/keystone.js

[설치하다]
WantedBy=다중 사용자.대상

추가 읽기

관련 정보