package/openvpn: use start-stop-daemon to perform start/stop actions
authorMaxim Kochetkov <fido_max@inbox.ru>
Fri, 2 Oct 2020 06:47:21 +0000 (09:47 +0300)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Thu, 8 Oct 2020 21:24:44 +0000 (23:24 +0200)
Using 'start-stop-daemon' prevents multiple instances creation by
'/etc/init.d/S60openvpn start'.

Signed-off-by: Maxim Kochetkov <fido_max@inbox.ru>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
package/openvpn/S60openvpn

index bc1ab01c1a89270862f56e7e5495cf90859d228b..f097cf11ecb8ed3f05a508058479519e29eabd04 100644 (file)
@@ -11,13 +11,15 @@ CONFIG_DIR=/etc/openvpn
 test -d $CONFIG_DIR || exit 0
 
 start_vpn () {
-    /usr/sbin/openvpn --daemon --writepid /var/run/openvpn.$NAME.pid \
-            --config $CONFIG_DIR/$NAME.conf --cd $CONFIG_DIR || printf " FAILED->"
-    printf " $NAME"
+    printf " $NAME "
+    start-stop-daemon -S -p /var/run/openvpn.$NAME.pid -x /usr/sbin/openvpn -- \
+             --daemon --writepid /var/run/openvpn.$NAME.pid \
+             --config $CONFIG_DIR/$NAME.conf --cd $CONFIG_DIR
+    [ $? = 0 ] && echo "OK" || echo "FAIL"
 }
 stop_vpn () {
-   kill `cat $PIDFILE` || true
-  rm $PIDFILE
+    printf " $NAME "
+    start-stop-daemon -K -p /var/run/openvpn.$NAME.pid -x /usr/sbin/openvpn
 }
 
 case "$1" in
@@ -48,7 +50,6 @@ stop)
       NAME=`echo $PIDFILE | cut -c18-`
       NAME=${NAME%%.pid}
       stop_vpn
-      printf " $NAME"
     done
   else
     if test -e /var/run/openvpn.$2.pid ; then
@@ -56,7 +57,6 @@ stop)
       NAME=`echo $PIDFILE | cut -c18-`
       NAME=${NAME%%.pid}
       stop_vpn
-      printf " $NAME"
     else
       printf " No such VPN: $2"
     fi