#! /bin/sh
# This script can be used to start/stop smsd 
# as a daemon in Linux and Solaris.

# Kills all processes with name $1, using SIGTERM
# first, followed by SIGKILL
kill_softly() {
	killall -q -TERM $1
	maxwait=3
	seconds=0
	while [ -n "`pidof $1`" ]; do
		seconds=`expr $seconds + 1`
		if [ "$seconds" -ge $maxwait ]; then
			killall -q -KILL smsd
			return 1
		fi
		sleep 1
	done
	return 0
}

case "$1" in
	start)
		touch /tmp/me_paused
		kill_softly modem_emulator
		kill_softly pppd
		mkdir -p /var/spool/sms/checked
		mkdir -p /var/spool/sms/incoming
		mkdir -p /var/spool/sms/outgoing
		( cd /var/spool/sms && rm -f *.LOCK; )
		/usr/local/bin/smsd &
		;;
	stop)
		kill_softly smsd
		rm -f /tmp/me_paused
		kill_softly modem_emulator
		;;
	restart|reload)
		$0 stop
		$0 start
		;;
	*)
		echo "Usage: $0 {start|stop|restart}"
		exit 1
esac
