michael@666: #!@l_prefix@/bin/openpkg rc michael@666: ## michael@666: ## rc.openvpn -- Run-Commands michael@666: ## michael@666: michael@666: %config michael@666: openvpn_enable="$openpkg_rc_def" michael@666: openvpn_log_prolog="true" michael@666: openvpn_log_epilog="true" michael@666: openvpn_log_numfiles="10" michael@666: openvpn_log_minsize="1M" michael@666: openvpn_log_complevel="9" michael@666: michael@666: %common michael@666: openvpn_etcdir="@l_prefix@/etc/openvpn" michael@666: openvpn_vardir="@l_prefix@/var/openvpn" michael@666: openvpn_signal () { michael@666: [ -f $openvpn_vardir/$1.pid ] && kill -$2 `cat $openvpn_vardir/$1.pid` michael@666: } michael@666: michael@666: %status -u @l_susr@ -o michael@666: openvpn_usable="unknown" michael@666: openvpn_active="yes" michael@666: if rcService openvpn enable yes; then michael@666: for cfgfile in $openvpn_etcdir/*.conf; do michael@666: [ ".`grep '^disable' $cfgfile`" != . ] && continue michael@666: name=`echo "$cfgfile" | sed -e 's;^.*/\([^/]*\)\.conf;\1;'` michael@666: openvpn_signal $name 0 michael@666: if [ $? -ne 0 ]; then michael@666: openvpn_active="no" michael@666: break michael@666: fi michael@666: done michael@666: fi michael@666: echo "openvpn_enable=\"$openvpn_enable\"" michael@666: echo "openvpn_usable=\"$openvpn_usable\"" michael@666: echo "openvpn_active=\"$openvpn_active\"" michael@666: michael@666: %start -p 200 -u @l_susr@ michael@666: rcService openvpn enable yes || exit 0 michael@666: rcService openvpn active yes && exit 0 michael@666: if [ -f $openvpn_etcdir/openvpn.sh ]; then michael@666: sh $openvpn_etcdir/openvpn.sh start || exit $? michael@666: fi michael@666: for cfgfile in $openvpn_etcdir/*.conf; do michael@666: [ ".`grep '^disable' $cfgfile`" != . ] && continue michael@666: name=`echo "$cfgfile" | sed -e 's;^.*/\([^/]*\)\.conf;\1;'` michael@666: if [ -f $openvpn_etcdir/$name.sh -a ".$name" != .openvpn ]; then michael@666: sh $openvpn_etcdir/$name.sh start || exit $? michael@666: fi michael@666: @l_prefix@/sbin/openvpn \ michael@666: --daemon "$name" \ michael@666: --log-append $openvpn_vardir/$name.log \ michael@666: --writepid $openvpn_vardir/$name.pid \ michael@666: --status $openvpn_vardir/$name.status 60 \ michael@666: --config $cfgfile \ michael@666: --cd $openvpn_etcdir || exit $? michael@666: done michael@666: michael@666: %stop -p 800 -u @l_susr@ michael@666: rcService openvpn enable yes || exit 0 michael@666: rcService openvpn active no && exit 0 michael@666: for cfgfile in $openvpn_etcdir/*.conf; do michael@666: [ ".`grep '^disable' $cfgfile`" != . ] && continue michael@666: name=`echo "$cfgfile" | sed -e 's;^.*/\([^/]*\)\.conf;\1;'` michael@666: openvpn_signal $name TERM michael@666: done michael@666: sleep 1 michael@666: for cfgfile in $openvpn_etcdir/*.conf; do michael@666: [ ".`grep '^disable' $cfgfile`" != . ] && continue michael@666: name=`echo "$cfgfile" | sed -e 's;^.*/\([^/]*\)\.conf;\1;'` michael@666: if [ -f $openvpn_etcdir/$name.sh -a ".$name" != .openvpn ]; then michael@666: sh $openvpn_etcdir/$name.sh stop || true michael@666: fi michael@666: done michael@666: if [ -f $openvpn_etcdir/openvpn.sh ]; then michael@666: sh $openvpn_etcdir/openvpn.sh stop || true michael@666: fi michael@666: rm -f $openvpn_vardir/*.pid 2>/dev/null || true michael@666: michael@666: %restart -u @l_susr@ michael@666: rcService openvpn enable yes || exit 0 michael@666: rcService openvpn active no && exit 0 michael@666: rc openvpn stop start michael@666: michael@666: %reload -u @l_susr@ michael@666: rcService openvpn enable yes || exit 0 michael@666: rcService openvpn active no && exit 0 michael@666: for cfgfile in $openvpn_etcdir/*.conf; do michael@666: [ ".`grep '^disable' $cfgfile`" != . ] && continue michael@666: name=`echo "$cfgfile" | sed -e 's;^.*/\([^/]*\)\.conf;\1;'` michael@666: openvpn_signal $name USR1 michael@666: if [ -f $openvpn_etcdir/$name.sh ]; then michael@666: sh $openvpn_etcdir/$name.sh reload || true michael@666: fi michael@666: done michael@666: michael@666: %daily -u @l_susr@ michael@666: rcService openvpn enable yes || exit 0 michael@666: for cfgfile in $openvpn_etcdir/*.conf; do michael@666: [ ".`grep '^disable' $cfgfile`" != . ] && continue michael@666: name=`echo "$cfgfile" | sed -e 's;^.*/\([^/]*\)\.conf;\1;'` michael@666: shtool rotate -f \ michael@666: -n ${openvpn_log_numfiles} -s ${openvpn_log_minsize} -d \ michael@666: -z ${openvpn_log_complevel} -o @l_rusr@ -g @l_rgrp@ -m 644 \ michael@666: -P "${openvpn_log_prolog}" \ michael@666: -E "${openvpn_log_epilog}; rc openvpn reload" \ michael@666: $openvpn_vardir/$name.log michael@666: done michael@666: