Назад | Перейти на главную страницу

svnserve init.d скрипт

У кого-нибудь есть сценарий инициализации для службы 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