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