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 <jackie.huang@windriver.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
This commit is contained in:
Jackie Huang 2014-11-14 04:52:00 -05:00 committed by Armin Kuster
parent eaf285dc30
commit ad4734201b

View 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