| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- #!/bin/sh
- ##
- ## openvpnctl -- OpenVPN Daemon Control
- ##
- openvpn_bindir="@l_prefix@/sbin"
- openvpn_etcdir="@l_prefix@/etc/openvpn"
- openvpn_vardir="@l_prefix@/var/openvpn"
- name_full2short () {
- echo "$1" |\
- sed -e 's;^.*/\([^/]*\)$;\1;' \
- -e 's;\.conf$;;' \
- -e 's;^openvpn-;;' \
- -e 's;^$;default;'
- }
- name_short2full () {
- echo "$1" |\
- sed -e 's;^default$;;' \
- -e 's;^;openvpn-;'
- }
- cmd="$1"; shift
- case "$cmd" in
- list )
- for cfgfile in $openvpn_etcdir/*.conf; do
- [ ".`grep '^disable' $cfgfile`" != . ] && continue
- name_full2short "$cfgfile"
- done
- ;;
- start )
- name=`name_short2full "$1"`; shift
- if [ -f $openvpn_etcdir/$name.sh -a ".$name" != .openvpn ]; then
- sh $openvpn_etcdir/$name.sh start || exit $?
- fi
- $openvpn_bindir/openvpn \
- --daemon "$name" \
- --log-append $openvpn_vardir/$name.log \
- --writepid $openvpn_vardir/$name.pid \
- --status $openvpn_vardir/$name.status 60 \
- --config $openvpn_etcdir/$name.conf \
- --cd $openvpn_etcdir || exit $?
- ;;
- signal )
- name=`name_short2full "$1"`; shift
- [ -f $openvpn_vardir/$name.pid ] && kill -$2 `cat $openvpn_vardir/$name.pid`
- ;;
- reload )
- name=`name_short2full "$1"`; shift
- [ -f $openvpn_vardir/$name.pid ] && kill -USR1 `cat $openvpn_vardir/$name.pid`
- if [ -f $openvpn_etcdir/$name.sh ]; then
- sh $openvpn_etcdir/$name.sh reload || true
- fi
- ;;
- stop )
- name=`name_short2full "$1"`; shift
- [ -f $openvpn_vardir/$name.pid ] && kill -TERM `cat $openvpn_vardir/$name.pid`
- sleep 1
- if [ -f $openvpn_etcdir/$name.sh -a ".$name" != .openvpn ]; then
- sh $openvpn_etcdir/$name.sh stop || true
- fi
- rm -f $openvpn_vardir/$name.pid 2>/dev/null || true
- ;;
- esac
|