#! /bin/sh

### BEGIN INIT INFO
# Provides:          socketcand
# Required-Start:    $remote_fs
# Required-Stop:     $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:
# Short-Description: socketcand
# Description:       daemon that provides network access to local CAN busses
### END INIT INFO

[ -f /etc/default/rcS ] && . /etc/default/rcS
PATH=/bin:/usr/bin:/sbin:/usr/sbin
prefix=/usr
exec_prefix=/usr
DAEMON=${exec_prefix}/bin/socketcand
DESC="SocketCAN daemon"
NAME="socketcand"
PIDFILE=/var/run/socketcand.pid

test -x $DAEMON || exit 0

case "$1" in
  start)
	echo "Starting $DESC" "$NAME"
	start-stop-daemon --start --quiet --background --pidfile $PIDFILE --startas $DAEMON -m -- --daemon
	;;
  stop)
	echo "Stopping $DESC" "$NAME"
	start-stop-daemon --stop --quiet --pidfile $PIDFILE --oknodo --startas $DAEMON
	rm -f $PIDFILE
	;;
  status)
	printf "%-50s" "Checking $NAME..."
	if [ -f $PIDFILE ]; then
	PID=`cat $PIDFILE`
	if [ -z "`ps axf | grep ${PID} | grep -v grep`" ]; then
		printf "%s\n" "Process dead but pidfile exists"
		return 1
	else
		echo "Running"
		return 0
	fi
	else
		printf "%s\n" "Service not running"
		return 1
	fi
	;;
  restart)
  	$0 stop
	sleep 1
	$0 start
	;;
  force-reload)
	if start-stop-daemon --stop --test --quiet --pidfile $PIDFILE --startas $DAEMON ; then
		$0 restart
	fi
	;;
  *)
	echo "Usage: /etc/init.d/socketcand {start|stop|restart|force-reload}"
	exit 1
	;;
esac

exit 0
