|
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 |