]> code.ossystems Code Review - openembedded-core.git/commitdiff
irda-utils: restart irda daemon correctly
authorQiang Chen <qiang.chen@windriver.com>
Wed, 30 Oct 2013 09:12:29 +0000 (17:12 +0800)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 12 Dec 2013 16:53:06 +0000 (16:53 +0000)
irattach init script restart faulty logic prevents irda daemon
from restart correctly.

root@qemu0:~# /etc/init.d/irattach restart
Restarting IrDA: Terminated
root@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.

(From OE-Core master rev: 39f266138b972b550979909b235a5779828d7d89)

Signed-off-by: Qiang Chen <qiang.chen@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
meta/recipes-connectivity/irda-utils/irda-utils-0.9.18/init

index b8038e08a30441dfba3f3b703887630572891c19..6f29e9c6ed4629aada240fd199656e273cd9eaea 100755 (executable)
@@ -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
-