From: Peter Korsgaard Date: Tue, 15 Jan 2013 20:30:14 +0000 (+0100) Subject: openvpn: fix init script name X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=41fb3df4bd370b869fea3d0b38d01f596f86f721;p=buildroot.git openvpn: fix init script name Our default (busybox) rc.S implementation requires init scripts to be named S??*, so rename the openvpn one to S60openvpn (E.G. after network). At the same time remove the deprecated check-if-custom-skeleton-provided-file and just always install the init script. People can always fixup/remove it in their post-build script if needed. Also name the init script source the same as the destination file name in TARGET_DIR for consistency. Signed-off-by: Peter Korsgaard --- diff --git a/package/openvpn/S60openvpn b/package/openvpn/S60openvpn new file mode 100755 index 0000000000..94bdc600e0 --- /dev/null +++ b/package/openvpn/S60openvpn @@ -0,0 +1,103 @@ +#!/bin/sh -e +# +# Original version by Robert Leslie +# , edited by iwj and cs +# Modified for openvpn by Alberto Gonzalez Iniesta +# Modified for restarting / starting / stopping single tunnels by Richard Mueller + +test $DEBIAN_SCRIPT_DEBUG && set -v -x + +DAEMON=/usr/sbin/openvpn +CONFIG_DIR=/etc/openvpn +test -x $DAEMON || exit 0 +test -d $CONFIG_DIR || exit 0 + +start_vpn () { + $DAEMON --daemon --writepid /var/run/openvpn.$NAME.pid \ + --config $CONFIG_DIR/$NAME.conf --cd $CONFIG_DIR || echo -n " FAILED->" + echo -n " $NAME" +} +stop_vpn () { + kill `cat $PIDFILE` || true + rm $PIDFILE +} + +case "$1" in +start) + echo -n "Starting openvpn:" + + if test -z $2 ; then + for CONFIG in `cd $CONFIG_DIR; ls *.conf 2> /dev/null`; do + NAME=${CONFIG%%.conf} + start_vpn + done + else + if test -e $CONFIG_DIR/$2.conf ; then + NAME=$2 + start_vpn + else + echo -n " No such VPN: $2" + fi + fi + echo "." + + ;; +stop) + echo -n "Stopping openvpn:" + + if test -z $2 ; then + for PIDFILE in `ls /var/run/openvpn.*.pid 2> /dev/null`; do + NAME=`echo $PIDFILE | cut -c18-` + NAME=${NAME%%.pid} + stop_vpn + echo -n " $NAME" + done + else + if test -e /var/run/openvpn.$2.pid ; then + PIDFILE=`ls /var/run/openvpn.$2.pid 2> /dev/null` + NAME=`echo $PIDFILE | cut -c18-` + NAME=${NAME%%.pid} + stop_vpn + echo -n " $NAME" + else + echo -n " No such VPN: $2" + fi + fi + echo "." + ;; +# We only 'reload' for running VPNs. New ones will only start with 'start' or 'restart'. +reload|force-reload) + echo -n "Reloading openvpn:" + for PIDFILE in `ls /var/run/openvpn.*.pid 2> /dev/null`; do + NAME=`echo $PIDFILE | cut -c18-` + NAME=${NAME%%.pid} +# If openvpn if running under a different user than root we'll need to restart + if egrep '^( |\t)*user' $CONFIG_DIR/$NAME.conf > /dev/null 2>&1 ; then + stop_vpn + sleep 1 + start_vpn + echo -n "(restarted)" + else + kill -HUP `cat $PIDFILE` || true +# start-stop-daemon --stop --signal HUP --quiet --oknodo \ +# --exec $DAEMON --pidfile $PIDFILE + echo -n " $NAME" + fi + done + echo "." + ;; + +restart) + $0 stop $2 + sleep 1 + $0 start $2 + ;; +*) + echo "Usage: $0 {start|stop|reload|restart|force-reload}" >&2 + exit 1 + ;; +esac + +exit 0 + +# vim:set ai et sts=2 sw=2 tw=0: diff --git a/package/openvpn/openvpn.init b/package/openvpn/openvpn.init deleted file mode 100755 index 94bdc600e0..0000000000 --- a/package/openvpn/openvpn.init +++ /dev/null @@ -1,103 +0,0 @@ -#!/bin/sh -e -# -# Original version by Robert Leslie -# , edited by iwj and cs -# Modified for openvpn by Alberto Gonzalez Iniesta -# Modified for restarting / starting / stopping single tunnels by Richard Mueller - -test $DEBIAN_SCRIPT_DEBUG && set -v -x - -DAEMON=/usr/sbin/openvpn -CONFIG_DIR=/etc/openvpn -test -x $DAEMON || exit 0 -test -d $CONFIG_DIR || exit 0 - -start_vpn () { - $DAEMON --daemon --writepid /var/run/openvpn.$NAME.pid \ - --config $CONFIG_DIR/$NAME.conf --cd $CONFIG_DIR || echo -n " FAILED->" - echo -n " $NAME" -} -stop_vpn () { - kill `cat $PIDFILE` || true - rm $PIDFILE -} - -case "$1" in -start) - echo -n "Starting openvpn:" - - if test -z $2 ; then - for CONFIG in `cd $CONFIG_DIR; ls *.conf 2> /dev/null`; do - NAME=${CONFIG%%.conf} - start_vpn - done - else - if test -e $CONFIG_DIR/$2.conf ; then - NAME=$2 - start_vpn - else - echo -n " No such VPN: $2" - fi - fi - echo "." - - ;; -stop) - echo -n "Stopping openvpn:" - - if test -z $2 ; then - for PIDFILE in `ls /var/run/openvpn.*.pid 2> /dev/null`; do - NAME=`echo $PIDFILE | cut -c18-` - NAME=${NAME%%.pid} - stop_vpn - echo -n " $NAME" - done - else - if test -e /var/run/openvpn.$2.pid ; then - PIDFILE=`ls /var/run/openvpn.$2.pid 2> /dev/null` - NAME=`echo $PIDFILE | cut -c18-` - NAME=${NAME%%.pid} - stop_vpn - echo -n " $NAME" - else - echo -n " No such VPN: $2" - fi - fi - echo "." - ;; -# We only 'reload' for running VPNs. New ones will only start with 'start' or 'restart'. -reload|force-reload) - echo -n "Reloading openvpn:" - for PIDFILE in `ls /var/run/openvpn.*.pid 2> /dev/null`; do - NAME=`echo $PIDFILE | cut -c18-` - NAME=${NAME%%.pid} -# If openvpn if running under a different user than root we'll need to restart - if egrep '^( |\t)*user' $CONFIG_DIR/$NAME.conf > /dev/null 2>&1 ; then - stop_vpn - sleep 1 - start_vpn - echo -n "(restarted)" - else - kill -HUP `cat $PIDFILE` || true -# start-stop-daemon --stop --signal HUP --quiet --oknodo \ -# --exec $DAEMON --pidfile $PIDFILE - echo -n " $NAME" - fi - done - echo "." - ;; - -restart) - $0 stop $2 - sleep 1 - $0 start $2 - ;; -*) - echo "Usage: $0 {start|stop|reload|restart|force-reload}" >&2 - exit 1 - ;; -esac - -exit 0 - -# vim:set ai et sts=2 sw=2 tw=0: diff --git a/package/openvpn/openvpn.mk b/package/openvpn/openvpn.mk index 2658d76a93..a49daca763 100644 --- a/package/openvpn/openvpn.mk +++ b/package/openvpn/openvpn.mk @@ -42,15 +42,13 @@ endif define OPENVPN_INSTALL_TARGET_CMDS $(INSTALL) -m 755 $(@D)/src/openvpn/openvpn \ $(TARGET_DIR)/usr/sbin/openvpn - if [ ! -f $(TARGET_DIR)/etc/init.d/openvpn ]; then \ - $(INSTALL) -m 755 -D package/openvpn/openvpn.init \ - $(TARGET_DIR)/etc/init.d/openvpn; \ - fi + $(INSTALL) -m 755 -D package/openvpn/S60openvpn \ + $(TARGET_DIR)/etc/init.d/S60openvpn endef define OPENVPN_UNINSTALL_TARGET_CMDS rm -f $(TARGET_DIR)/usr/sbin/openvpn - rm -f $(TARGET_DIR)/etc/init.d/openvpn + rm -f $(TARGET_DIR)/etc/init.d/S60openvpn endef $(eval $(autotools-package))