* 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>
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: "
;;
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