init.d 스크립트는 수동으로 시작되지만 서비스 명령을 통해서나 부팅 시에는 시작되지 않습니다.

init.d 스크립트는 수동으로 시작되지만 서비스 명령을 통해서나 부팅 시에는 시작되지 않습니다.

Subversion init.d 스크립트가 있는데 이를 시작하면 수동으로 시작할 수 있습니다.

$ sudo /etc/init.d/subversion start

나는 다음과 같은 응답을 받았습니다.

$ Starting Subversion Daemon (svnserve):                     [  OK  ]

그러나 스크립트를 추가하면

$ sudo /sbin/chkconfig --add subversion

그런 다음 다음을 실행하십시오.

$ /sbin/service subversion start

나는 다음과 같은 응답을 받았습니다.

$ Starting Subversion Daemon (svnserve): /etc/init.d/subversion: Usage: daemon [+/-nicelevel] {program}

이거 본 사람 있어? 스크립트에는 +x 권한이 있습니다. init.d 스크립트는 다음과 같습니다:

/etc/init.d/subversion:

    #!/bin/bash
    #
    #   /etc/init.d/subversion
    #
    # Starts the Subversion Daemon
    #
    # chkconfig: 2345 90 10
    # description: Subversion Daemon


    # copied from http://www.svnforum.org/threads/31170-init.d-script-for-fedora-redhat


    # processname: svnserve

    source /etc/rc.d/init.d/functions

    [ -x /usr/bin/svnserve ] || exit 1

    ### Default variables
    SYSCONFIG="/etc/sysconfig/subversion"

    ### Read configuration
    [ -r "$SYSCONFIG" ] && source "$SYSCONFIG"

    RETVAL=0
    prog="svnserve"
    desc="Subversion Daemon"

    start() {
        echo -n $"Starting $desc ($prog): "
            daemon --user $USER $prog -d $OPTIONS
            RETVAL=$?
            [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
            echo
    }

    stop() {
            echo -n $"Shutting down $desc ($prog): "
            killproc $prog
            RETVAL=$?
            [ $RETVAL -eq 0 ] && success || failure
            echo
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
            return $RETVAL
    }


    case "$1" in
      start)
            start
        ;;
      stop)
            stop
        ;;
      restart)
        stop
        start
        RETVAL=$?
            ;;
      condrestart)
        [ -e /var/lock/subsys/$prog ] && restart
            RETVAL=$?
            ;;
      *)
            echo $"Usage: $0 {start|stop|restart|condrestart}"
            RETVAL=1
    esac

    exit $RETVAL

/etc/sysconfig/subversion:

 OPTIONS="-r /data/repository/"

답변1

이는 init 스크립트에서 사용하는 데몬 명령에 문제가 있습니다.
변수 $USER가 설정되지 않았으므로 데몬 함수에 인수를 전달할 때:

        --user)
               user=$2
               shift 2
               ;;

인수 svnserve가 사용 중이므로 user=$2함수 -d에 의해 해결됩니다.

        *)     echo $"$0: Usage: daemon [+/-nicelevel] {program}"
               return 1;;

USER따라서 스크립트에 변수를 하드코딩하거나 매개변수 --user $USER에서 제거하세요.daemon

또한 변수에 대한 경로도 하드코딩해야 합니다 $prog.

prog=/usr/bin/svnserve

관련 정보