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