[OE-core] [PATCH] irda-utils: restart irda daemon correctly

qiang.chen at windriver.com qiang.chen at windriver.com
Wed Oct 30 09:12:29 UTC 2013


From: Qiang Chen <qiang.chen at windriver.com>

irattach init script restart faulty logic prevents irda daemon
from restart correctly.

root at qemu0:~# /etc/init.d/irattach restart
Restarting IrDA: Terminated
root at qemu0:~# ps aux | grep irattach
root       541  0.0  0.2   2400   612 ttyS0    S+   09:05   0:00 grep irattach

As above shows, irattach not started after executing restart command.
This commit changed the restart command logic: firstly stop, then
start.
Prompt telling user irattach start successfully or failure also
added.

Signed-off-by: Qiang Chen <qiang.chen at windriver.com>
---
 .../irda-utils/irda-utils-0.9.18/init              |   38 ++++++++++----------
 1 file changed, 19 insertions(+), 19 deletions(-)

diff --git a/meta/recipes-connectivity/irda-utils/irda-utils-0.9.18/init b/meta/recipes-connectivity/irda-utils/irda-utils-0.9.18/init
index b8038e0..6f29e9c 100755
--- a/meta/recipes-connectivity/irda-utils/irda-utils-0.9.18/init
+++ b/meta/recipes-connectivity/irda-utils/irda-utils-0.9.18/init
@@ -8,6 +8,10 @@
 # Short-Description: Infrared port support
 ### END INIT INFO
 
+NAME="irattach"
+test -x "$IRDA_DAEMON" || IRDA_DAEMON=/usr/sbin/irattach
+test -z "$IRATTACH_PID" && IRATTACH_PID=/var/run/irattach.pid
+
 # Source function library.
 . /etc/init.d/functions
 
@@ -49,30 +53,26 @@ fi
 
 case "$1" in
   start)
-        echo -n "Starting IrDA: "
-		irattach ${DEVICE} ${ARGS} > /dev/null 2>&1 &
-        echo "$NAME."
-        ;;
+	echo -n "Starting IrDA: $NAME"
+	start-stop-daemon --start --quiet --exec "$IRDA_DAEMON" ${DEVICE} ${ARGS} --pidfile "$IRATTACH_PID"
+	sleep 1
+	[ -f /var/run/irattach.pid ] && echo " done" || echo " fail"
+	;;
   stop)
-        echo -n "Stopping IrDA: "
-		killall irattach > /dev/null 2>&1
-        echo "$NAME."
-        ;;
+	echo "Stopping IrDA: $NAME"
+	start-stop-daemon --stop --quiet --exec "$IRDA_DAEMON" --pidfile "$IRATTACH_PID"
+	;;
   restart|force-reload)
-        echo -n "Restarting IrDA: "
-		irattach ${DEVICE} ${ARGS} > /dev/null 2>&1 &
-        sleep 1
-		killall irattach > /dev/null 2>&1
-        echo "$NAME."
-        ;;
+	$0 stop
+	$0 start
+	;;
   status)
 	status irattach
 	exit $?
 	;;
   *)
-        N=/etc/init.d/$NAME
-        echo "Usage: $N {start|stop|restart|force-reload|status}" >&2
-        exit 1
-        ;;
+	N=/etc/init.d/$NAME
+	echo "Usage: $N {start|stop|restart|force-reload|status}" >&2
+	exit 1
+	;;
 esac
-
-- 
1.7.9.5




More information about the Openembedded-core mailing list