From ad4734201b02f7acec08ad4571571e125d05b975 Mon Sep 17 00:00:00 2001 From: Jackie Huang Date: Fri, 14 Nov 2014 04:52:00 -0500 Subject: hostapd: several fixes for init script * 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. Signed-off-by: Jackie Huang Signed-off-by: Martin Jansa Signed-off-by: Armin Kuster --- .../recipes-connectivity/hostapd/hostapd-2.2/init | 27 +++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/meta-oe/recipes-connectivity/hostapd/hostapd-2.2/init b/meta-oe/recipes-connectivity/hostapd/hostapd-2.2/init index 79f74b681..8ba4e0794 100644 --- a/meta-oe/recipes-connectivity/hostapd/hostapd-2.2/init +++ b/meta-oe/recipes-connectivity/hostapd/hostapd-2.2/init @@ -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 -- cgit v1.2.3-54-g00ecf