mirror of
				https://github.com/openwrt/packages.git
				synced 2025-10-31 20:18:31 +00:00 
			
		
		
		
	This package contains the daemon (dtnd) of IBR-DTN, a modular and lightweight implementation of the bundle protocol (RFC 5050). https://github.com/ibrdtn/ibrdtn Signed-off-by: Johannes Morgenroth <morgenroth@ibr.cs.tu-bs.de>
		
			
				
	
	
		
			72 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/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"
 | |
| }
 |