Ralf,
Using your nohup trick, I cooked up an rc.subversion that takes care of the
svnserve process. I have setup the process to run as l_musr instead of
root because I see no reason to run this daemon as root.
You should be able to add in the l_musr and l_prefix in a few spots and
commit this.
Thanks,
Aaron
#!/opkg/lib/openpkg/bash /opkg/etc/rc
##
## rc.subversion -- Run-Commands
##
%config
subversion_enable="$openpkg_rc_def"
subversion_env="no"
subversion_daemon="yes"
subversion_daemon_host="127.0.0.1"
subversion_daemon_port="3690"
subversion_daemon_root="/opkg/var/subversion"
%common
subversion_svnserve_pidfile="/opkg/var/subversion/svnserve.pid"
subversion_signal () {
[ -f $subversion_svnserve_pidfile ] \
&& kill -$1 `cat $subversion_svnserve_pidfile`
}
%status -u opkg -o
subversion_usable="unknown"
subversion_active="no"
rcService subversion enable yes && \
subversion_signal 0 && subversion_active="yes"
echo "subversion_enable=\"$subversion_enable\""
echo "subversion_usable=\"$subversion_usable\""
echo "subversion_active=\"$subversion_active\""
%start -p 100 -u opkg
rcService subversion enable yes || exit 0
rcService subversion active yes && exit 0
if rcVarIsYes subversion_daemon; then
if [ ".$subversion_daemon_root" != . ]; then
( nohup /opkg/bin/svnserve --daemon --foreground \
--listen-host $subversion_daemon_host \
--listen-port $subversion_daemon_port \
--root $subversion_daemon_root \
</dev/null >/dev/null 2>&1 &
echo "$!" >$subversion_svnserve_pidfile
) >/dev/null 2>&1
fi
fi
%stop -p 100 -u opkg
rcService subversion enable yes || exit 0
rcService subversion active no && exit 0
subversion_signal TERM
sleep 2
rm -f $subversion_svnserve_pidfile 2>/dev/null || true
%restart -u root
rcService subversion enable yes || exit 0
rcService subversion active no && exit 0
rc subversion stop start
%env
rcService subversion enable yes || exit 0
if rcVarIsYes subversion_env; then
if [ ".$BASH" != . ]; then
shopt -s extglob progcomp
. /opkg/etc/subversion/subversion.bash
fi
fi