| |
1 #!@l_prefix@/bin/openpkg rc |
| |
2 ## |
| |
3 ## rc.openvpn -- Run-Commands |
| |
4 ## |
| |
5 |
| |
6 %config |
| |
7 openvpn_enable="$openpkg_rc_def" |
| |
8 openvpn_log_prolog="true" |
| |
9 openvpn_log_epilog="true" |
| |
10 openvpn_log_numfiles="10" |
| |
11 openvpn_log_minsize="1M" |
| |
12 openvpn_log_complevel="9" |
| |
13 |
| |
14 %common |
| |
15 openvpn_etcdir="@l_prefix@/etc/openvpn" |
| |
16 openvpn_vardir="@l_prefix@/var/openvpn" |
| |
17 openvpn_signal () { |
| |
18 [ -f $openvpn_vardir/$1.pid ] && kill -$2 `cat $openvpn_vardir/$1.pid` |
| |
19 } |
| |
20 |
| |
21 %status -u @l_susr@ -o |
| |
22 openvpn_usable="unknown" |
| |
23 openvpn_active="yes" |
| |
24 if rcService openvpn enable yes; then |
| |
25 for cfgfile in $openvpn_etcdir/*.conf; do |
| |
26 [ ".`grep '^disable' $cfgfile`" != . ] && continue |
| |
27 name=`echo "$cfgfile" | sed -e 's;^.*/\([^/]*\)\.conf;\1;'` |
| |
28 openvpn_signal $name 0 |
| |
29 if [ $? -ne 0 ]; then |
| |
30 openvpn_active="no" |
| |
31 break |
| |
32 fi |
| |
33 done |
| |
34 fi |
| |
35 echo "openvpn_enable=\"$openvpn_enable\"" |
| |
36 echo "openvpn_usable=\"$openvpn_usable\"" |
| |
37 echo "openvpn_active=\"$openvpn_active\"" |
| |
38 |
| |
39 %start -p 200 -u @l_susr@ |
| |
40 rcService openvpn enable yes || exit 0 |
| |
41 rcService openvpn active yes && exit 0 |
| |
42 if [ -f $openvpn_etcdir/openvpn.sh ]; then |
| |
43 sh $openvpn_etcdir/openvpn.sh start || exit $? |
| |
44 fi |
| |
45 for cfgfile in $openvpn_etcdir/*.conf; do |
| |
46 [ ".`grep '^disable' $cfgfile`" != . ] && continue |
| |
47 name=`echo "$cfgfile" | sed -e 's;^.*/\([^/]*\)\.conf;\1;'` |
| |
48 if [ -f $openvpn_etcdir/$name.sh -a ".$name" != .openvpn ]; then |
| |
49 sh $openvpn_etcdir/$name.sh start || exit $? |
| |
50 fi |
| |
51 @l_prefix@/sbin/openvpn \ |
| |
52 --daemon "$name" \ |
| |
53 --log-append $openvpn_vardir/$name.log \ |
| |
54 --writepid $openvpn_vardir/$name.pid \ |
| |
55 --status $openvpn_vardir/$name.status 60 \ |
| |
56 --config $cfgfile \ |
| |
57 --cd $openvpn_etcdir || exit $? |
| |
58 done |
| |
59 |
| |
60 %stop -p 800 -u @l_susr@ |
| |
61 rcService openvpn enable yes || exit 0 |
| |
62 rcService openvpn active no && exit 0 |
| |
63 for cfgfile in $openvpn_etcdir/*.conf; do |
| |
64 [ ".`grep '^disable' $cfgfile`" != . ] && continue |
| |
65 name=`echo "$cfgfile" | sed -e 's;^.*/\([^/]*\)\.conf;\1;'` |
| |
66 openvpn_signal $name TERM |
| |
67 done |
| |
68 sleep 1 |
| |
69 for cfgfile in $openvpn_etcdir/*.conf; do |
| |
70 [ ".`grep '^disable' $cfgfile`" != . ] && continue |
| |
71 name=`echo "$cfgfile" | sed -e 's;^.*/\([^/]*\)\.conf;\1;'` |
| |
72 if [ -f $openvpn_etcdir/$name.sh -a ".$name" != .openvpn ]; then |
| |
73 sh $openvpn_etcdir/$name.sh stop || true |
| |
74 fi |
| |
75 done |
| |
76 if [ -f $openvpn_etcdir/openvpn.sh ]; then |
| |
77 sh $openvpn_etcdir/openvpn.sh stop || true |
| |
78 fi |
| |
79 rm -f $openvpn_vardir/*.pid 2>/dev/null || true |
| |
80 |
| |
81 %restart -u @l_susr@ |
| |
82 rcService openvpn enable yes || exit 0 |
| |
83 rcService openvpn active no && exit 0 |
| |
84 rc openvpn stop start |
| |
85 |
| |
86 %reload -u @l_susr@ |
| |
87 rcService openvpn enable yes || exit 0 |
| |
88 rcService openvpn active no && exit 0 |
| |
89 for cfgfile in $openvpn_etcdir/*.conf; do |
| |
90 [ ".`grep '^disable' $cfgfile`" != . ] && continue |
| |
91 name=`echo "$cfgfile" | sed -e 's;^.*/\([^/]*\)\.conf;\1;'` |
| |
92 openvpn_signal $name USR1 |
| |
93 if [ -f $openvpn_etcdir/$name.sh ]; then |
| |
94 sh $openvpn_etcdir/$name.sh reload || true |
| |
95 fi |
| |
96 done |
| |
97 |
| |
98 %daily -u @l_susr@ |
| |
99 rcService openvpn enable yes || exit 0 |
| |
100 for cfgfile in $openvpn_etcdir/*.conf; do |
| |
101 [ ".`grep '^disable' $cfgfile`" != . ] && continue |
| |
102 name=`echo "$cfgfile" | sed -e 's;^.*/\([^/]*\)\.conf;\1;'` |
| |
103 shtool rotate -f \ |
| |
104 -n ${openvpn_log_numfiles} -s ${openvpn_log_minsize} -d \ |
| |
105 -z ${openvpn_log_complevel} -o @l_rusr@ -g @l_rgrp@ -m 644 \ |
| |
106 -P "${openvpn_log_prolog}" \ |
| |
107 -E "${openvpn_log_epilog}; rc openvpn reload" \ |
| |
108 $openvpn_vardir/$name.log |
| |
109 done |
| |
110 |