У кого-нибудь есть сценарий инициализации для службы svn, который работает?
Спасибо
в наши дни это должно быть так просто (если бы с ним был только svnserve; сейчас я использую v1.9.5):
sudo systemctl enable svnserve
sudo systemctl daemon-reload
но /etc/init.d/svnserve по-прежнему работает для Stretch (Debian v9.2, что я использую сейчас):
#!/bin/sh
if [ true != "$INIT_D_SCRIPT_SOURCED" ] ; then
set "$0" "$@"; INIT_D_SCRIPT_SOURCED=true . /lib/init/init-d-script
fi
### BEGIN INIT INFO
# Provides: svnserve
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: svnserve init script
# Description: bare minimum svn init script
### END INIT INFO
DESC="subversion server"
DAEMON=/usr/bin/svnserve
DAEMON_ARGS="-d -r /data/svn --log-file /var/log/svn.log"
ПРИМЕЧАНИЕ: измените базовый путь репо в соответствии с вашими потребностями, т.е. я использовал «svnadmin create / data / svn / repo1» и этот путь в аргументах демона, чтобы я мог просто svn: // host / repo1
а затем запустите:
sudo chmod 755 /etc/init.d/svnserve
sudo update-rc.d svnserve defaults
если вы получаете сообщение об отсутствии init-d-скрипта, возможно, вы используете старый Debian, например Wheezy, поэтому «sudo rm /etc/init.d/svnserve», а затем «sudo cp /etc/init.d/ скелет /etc/init.d/svnserve "(который существовал еще в Wheezy, но не сейчас) и измените три строки ниже (первый блок - по умолчанию, а второй блок - то, что должно быть, отмечая sbin => bin):
NAME=daemonexecutablename
DAEMON=/usr/sbin/$NAME
DAEMON_ARGS="--options args"
NAME=svnserve
DAEMON=/usr/bin/$NAME
DAEMON_ARGS="-d -r /data/svn --log-file /var/log/svn.log"*
[слишком много информации лучше, чем слишком мало информации]
Я создал интеллектуальный сценарий debian, основанный в основном на пакете Tomcat. При необходимости вы можете изменить основную переменную, она также может обрабатывать механизм по умолчанию. Наслаждаться.
#! /bin/sh # # /etc/init.d/subversion -- startup script for Subversion # # Author: Csaba Tenkes csaba.tenkes@brevissimus.eu # ### BEGIN INIT INFO # Provides: subversion # Required-Start: $local_fs $remote_fs $network # Required-Stop: $local_fs $remote_fs $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start subversion # Description: Start the Subversion server. ### END INIT INFO set -e PATH=/bin:/usr/bin:/sbin:/usr/sbin DESC="Subversion server" NAME=svnserve SCRIPTNAME=/etc/init.d/$NAME PIDFILE=/var/run/$NAME.pid SVN_USER=subversion SVN_GROUP=subversion SVN_REPO_PATH=/opt/svn-repos/ SVNSERVE=/usr/bin/$NAME SVNSERVE_ARGS="-d -r $SVN_REPO_PATH" [ -x "$SVNSERVE" ] || exit 0 [ -r /etc/default/$NAME ] && . /etc/default/$NAME . /lib/lsb/init-functions case "$1" in start) set +e log_daemon_msg "Starting $DESC" "$NAME" if ! [ -f "$PIDFILE" ]; then # TODO: 'ps fax | grep svnserve| grep ?' or process is existing umask 002 start-stop-daemon --start --chuid $SVN_USER:$SVN_GROUP --make-pidfile --pidfile $PIDFILE --exec $SVNSERVE -- \ $SVNSERVE_ARGS >/dev/null; chown $SVN_USER "$PIDFILE" log_end_msg 0 else log_progress_msg "(already running)" log_end_msg $? fi set -e ;; stop) set +e log_daemon_msg "Stopping $DESC" "$NAME" if [ -f "$PIDFILE" ]; then if start-stop-daemon --stop --exec $SVNSERVE; then log_end_msg 0 else log_end_msg $? fi rm -f "$PIDFILE" else log_progress_msg "(not running)" log_end_msg 0 fi set -e ;; restart|force-reload) if [ -f "$PIDFILE" ]; then $0 stop sleep 1 fi $0 start ;; status) set +e start-stop-daemon --test --start --pidfile "$PIDFILE" \ --user $SVN_USER --exec $SVNSERVE \ >/dev/null 2>&1 if [ "$?" = "0" ]; then if [ -f "$PIDFILE" ]; then PID=`cat $PIDFILE` log_daemon_msg "$DESC" "$NAME (pid $PID) is running.." log_end_msg 0 exit 0 else log_daemon_msg "$DESC" "$NAME is not running" log_end_msg 0 exit 3 fi else log_daemon_msg "$DESC " "$NAME is running with pid `cat $PIDFILE`" log_end_msg 0 exit 0 fi set -e ;; *) log_success_msg "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" exit 1 ;; esac exit 0
Вот что я приготовил. обратите внимание, что мой каталог svn находится в корневой папке / svn
#!/bin/bash
#
# /etc/rc.d/init.d/subversion
#
# Starts the Subversion Daemon
#
# chkconfig: 2345 90 10
# description: Subversion Daemon
# processname: svnserve
. /etc/rc.d/init.d/functions
[ -x /usr/bin/svnserve ] || exit 1
RETVAL=0
prog="svnserve"
desc="Subversion Daemon"
start() {
echo -n $"Starting $desc ($prog): "
daemon $prog -r /svn -d
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
Измените эту строку, чтобы отразить ваш каталог
daemon $prog -r /svn -denter code here
Затем запустите оболочку
#chkconfig --add svnserve
#chkconfig svnserve on
Перезапустите службу, чтобы проверить, работает ли она
#service svnserve restart
и стрела: D