|
|
- #!/bin/sh /etc/rc.common
- # Copyright (C) 2007 OpenWrt.org
-
- START=90
-
- start() {
- # check if the daemon is disabled
- if [ "`/sbin/uci -P/var/state -q get ibrdtn.disable`" == "1" ]; then
- /bin/echo "dtnd is disabled"
- return
- fi
-
- /bin/echo -n "running dtnd ..."
-
- # startup the safety-wrapper for the daemon
- /usr/sbin/dtnd-safety-wrapper.sh &
-
- # store the pid of the process in uci states
- /sbin/uci -P/var/state -q set ibrdtn.safetypid=`echo $!`
-
- /bin/echo " done"
- }
-
- stop() {
- # check if the daemon is disabled
- if [ "`/sbin/uci -P/var/state -q get ibrdtn.disable`" == "1" ]; then
- /bin/echo "dtnd is disabled"
- return
- fi
-
- /bin/echo -n "stopping dtnd ..."
-
- # set state to None, this indicates a clear shutdown to the safety-wrapper.
- /sbin/uci -P/var/state -q set ibrdtn.state=None
-
- # stop the safety-wrapper
- if [ -n "`/sbin/uci -P/var/state -q get ibrdtn.safetypid`" ]; then
- /usr/bin/kill `/sbin/uci -P/var/state -q get ibrdtn.safetypid` 2> /dev/null >/dev/null
- fi
-
- # finally kill really all safety-wrapper!
- /bin/sleep 2
- /usr/bin/killall -9 dtnd-safety-wrapper.sh
-
- # send a kill signal to the daemon
- /usr/bin/killall dtnd 2> /dev/null >/dev/null
-
- # wait for some time
- TIMEOUT=0;
-
- # check if the daemon is running
- while [ -n "`ps | grep dtnd | grep -v grep`" ]; do
- # check if the daemon is still running
- if [ $TIMEOUT -ge 10 ]; then
- /bin/echo " killing"
- # kill all processes of dtnd
- /usr/bin/killall -9 dtnd 2> /dev/null >/dev/null
- return
- fi
-
- # increment timeout
- TIMEOUT=`expr $TIMEOUT + 1`
-
- echo -n "."
-
- # wait some time
- /bin/sleep 1
- done
-
- echo " done"
- }
|