hostapd: several fixes for init script
authorJackie Huang <jackie.huang@windriver.com>
Fri, 14 Nov 2014 09:52:00 +0000 (04:52 -0500)
committerPatrick Ohly <patrick.ohly@intel.com>
Fri, 9 Jan 2015 17:19:23 +0000 (09:19 -0800)
* restart: The stop may delay a few seconds according to different wireless
  devices, on debian/ubuntu, the init script directly sleep 8 seconds
  to wait the stop complete, here we add a delay function (sleep in a loop)
  to ensure the stop is completed before start.
* add status command.
* add --oknodo for stop so it will not break restart if there is no
  running process.

(From meta-openembedded rev: ad4734201b02f7acec08ad4571571e125d05b975)

Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd-2.2/init

index 79f74b6..8ba4e07 100644 (file)
@@ -8,6 +8,23 @@ test -f $DAEMON || exit 0
 
 set -e
 
+# source function library
+. /etc/init.d/functions
+
+delay_stop() {
+       count=0
+       while [ $count -lt 9 ] ; do
+               if pidof $DAEMON >/dev/null; then
+                       sleep 1
+               else
+                       return 0
+               fi
+               count=`expr $count + 1`
+       done
+       echo "Failed to stop $DESC."
+       return 1
+}
+
 case "$1" in
     start)
        echo -n "Starting $DESC: "
@@ -16,20 +33,24 @@ case "$1" in
        ;;
     stop)
        echo -n "Stopping $DESC: "
-       start-stop-daemon -K -x $DAEMON
+       start-stop-daemon -K --oknodo -x $DAEMON
        echo "$NAME."
        ;;
     restart)
        $0 stop
-       $0 start
+       delay_stop && $0 start
        ;;
     reload)
        echo -n "Reloading $DESC: "
        killall -HUP $(basename ${DAEMON})
        echo "$NAME."
        ;;
+    status)
+       status $DAEMON
+       exit $?
+       ;;
     *)
-       echo "Usage: $0 {start|stop|restart|reload}"
+       echo "Usage: $0 {start|stop|restart|reload|status}"
        exit 1
        ;;
 esac