1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/openvpn/rc.openvpn Fri Sep 07 19:01:31 2012 +0200 1.3 @@ -0,0 +1,110 @@ 1.4 +#!@l_prefix@/bin/openpkg rc 1.5 +## 1.6 +## rc.openvpn -- Run-Commands 1.7 +## 1.8 + 1.9 +%config 1.10 + openvpn_enable="$openpkg_rc_def" 1.11 + openvpn_log_prolog="true" 1.12 + openvpn_log_epilog="true" 1.13 + openvpn_log_numfiles="10" 1.14 + openvpn_log_minsize="1M" 1.15 + openvpn_log_complevel="9" 1.16 + 1.17 +%common 1.18 + openvpn_etcdir="@l_prefix@/etc/openvpn" 1.19 + openvpn_vardir="@l_prefix@/var/openvpn" 1.20 + openvpn_signal () { 1.21 + [ -f $openvpn_vardir/$1.pid ] && kill -$2 `cat $openvpn_vardir/$1.pid` 1.22 + } 1.23 + 1.24 +%status -u @l_susr@ -o 1.25 + openvpn_usable="unknown" 1.26 + openvpn_active="yes" 1.27 + if rcService openvpn enable yes; then 1.28 + for cfgfile in $openvpn_etcdir/*.conf; do 1.29 + [ ".`grep '^disable' $cfgfile`" != . ] && continue 1.30 + name=`echo "$cfgfile" | sed -e 's;^.*/\([^/]*\)\.conf;\1;'` 1.31 + openvpn_signal $name 0 1.32 + if [ $? -ne 0 ]; then 1.33 + openvpn_active="no" 1.34 + break 1.35 + fi 1.36 + done 1.37 + fi 1.38 + echo "openvpn_enable=\"$openvpn_enable\"" 1.39 + echo "openvpn_usable=\"$openvpn_usable\"" 1.40 + echo "openvpn_active=\"$openvpn_active\"" 1.41 + 1.42 +%start -p 200 -u @l_susr@ 1.43 + rcService openvpn enable yes || exit 0 1.44 + rcService openvpn active yes && exit 0 1.45 + if [ -f $openvpn_etcdir/openvpn.sh ]; then 1.46 + sh $openvpn_etcdir/openvpn.sh start || exit $? 1.47 + fi 1.48 + for cfgfile in $openvpn_etcdir/*.conf; do 1.49 + [ ".`grep '^disable' $cfgfile`" != . ] && continue 1.50 + name=`echo "$cfgfile" | sed -e 's;^.*/\([^/]*\)\.conf;\1;'` 1.51 + if [ -f $openvpn_etcdir/$name.sh -a ".$name" != .openvpn ]; then 1.52 + sh $openvpn_etcdir/$name.sh start || exit $? 1.53 + fi 1.54 + @l_prefix@/sbin/openvpn \ 1.55 + --daemon "$name" \ 1.56 + --log-append $openvpn_vardir/$name.log \ 1.57 + --writepid $openvpn_vardir/$name.pid \ 1.58 + --status $openvpn_vardir/$name.status 60 \ 1.59 + --config $cfgfile \ 1.60 + --cd $openvpn_etcdir || exit $? 1.61 + done 1.62 + 1.63 +%stop -p 800 -u @l_susr@ 1.64 + rcService openvpn enable yes || exit 0 1.65 + rcService openvpn active no && exit 0 1.66 + for cfgfile in $openvpn_etcdir/*.conf; do 1.67 + [ ".`grep '^disable' $cfgfile`" != . ] && continue 1.68 + name=`echo "$cfgfile" | sed -e 's;^.*/\([^/]*\)\.conf;\1;'` 1.69 + openvpn_signal $name TERM 1.70 + done 1.71 + sleep 1 1.72 + for cfgfile in $openvpn_etcdir/*.conf; do 1.73 + [ ".`grep '^disable' $cfgfile`" != . ] && continue 1.74 + name=`echo "$cfgfile" | sed -e 's;^.*/\([^/]*\)\.conf;\1;'` 1.75 + if [ -f $openvpn_etcdir/$name.sh -a ".$name" != .openvpn ]; then 1.76 + sh $openvpn_etcdir/$name.sh stop || true 1.77 + fi 1.78 + done 1.79 + if [ -f $openvpn_etcdir/openvpn.sh ]; then 1.80 + sh $openvpn_etcdir/openvpn.sh stop || true 1.81 + fi 1.82 + rm -f $openvpn_vardir/*.pid 2>/dev/null || true 1.83 + 1.84 +%restart -u @l_susr@ 1.85 + rcService openvpn enable yes || exit 0 1.86 + rcService openvpn active no && exit 0 1.87 + rc openvpn stop start 1.88 + 1.89 +%reload -u @l_susr@ 1.90 + rcService openvpn enable yes || exit 0 1.91 + rcService openvpn active no && exit 0 1.92 + for cfgfile in $openvpn_etcdir/*.conf; do 1.93 + [ ".`grep '^disable' $cfgfile`" != . ] && continue 1.94 + name=`echo "$cfgfile" | sed -e 's;^.*/\([^/]*\)\.conf;\1;'` 1.95 + openvpn_signal $name USR1 1.96 + if [ -f $openvpn_etcdir/$name.sh ]; then 1.97 + sh $openvpn_etcdir/$name.sh reload || true 1.98 + fi 1.99 + done 1.100 + 1.101 +%daily -u @l_susr@ 1.102 + rcService openvpn enable yes || exit 0 1.103 + for cfgfile in $openvpn_etcdir/*.conf; do 1.104 + [ ".`grep '^disable' $cfgfile`" != . ] && continue 1.105 + name=`echo "$cfgfile" | sed -e 's;^.*/\([^/]*\)\.conf;\1;'` 1.106 + shtool rotate -f \ 1.107 + -n ${openvpn_log_numfiles} -s ${openvpn_log_minsize} -d \ 1.108 + -z ${openvpn_log_complevel} -o @l_rusr@ -g @l_rgrp@ -m 644 \ 1.109 + -P "${openvpn_log_prolog}" \ 1.110 + -E "${openvpn_log_epilog}; rc openvpn reload" \ 1.111 + $openvpn_vardir/$name.log 1.112 + done 1.113 +