#!/bin/sh # # /etc/rc.d/rc.vnstat - Start/stop/restart the vndstat daemon. # To make vnstat start automatically at boot, make this # file executable: chmod 0755 /etc/rc.d/rc.vnstat # CONFIGFILE="/etc/vnstat.conf" INTERFACE="eth0" DBASEDIR="/var/lib/vnstat/" PIDFILE="/var/run/vnstat.pid" vnstat_start() { if [ -e "$PIDFILE" ]; then echo "vnstatd is already running under PID: $PIDFILE" elif [ -x /usr/sbin/vnstatd -a -r $CONFIGFILE ]; then if [ ! -e "$DBASEDIR/$INTERFACE" ]; then # Sadly vnstat throws everything out over STDOUT instead of # using STERR for warnings and such. /usr/bin/vnstat -u -i "$INTERFACE" 1> /dev/null sleep 2 fi echo "Starting the vnstat daemon for interface $INTERFACE..." /usr/sbin/vnstatd --config $CONFIGFILE --daemon fi } vnstat_stop() { # There be demons here. I am sure we can get the pid from /var/run/ # for a much cleaner shutdown. echo -n "Stopping the vnstat Daemon..." if [ -r $PIDFILE ]; then kill $(cat $PIDFILE) sleep 2 if [ -e "$PIDFILE" ]; then rm $PIDFILE fi echo "Done" else killall vnstatd echo "Done" fi } vnstat_restart() { echo "restarting the vnstart daemon..." vnstat_stop sleep 2 vnstat_start } case "$1" in 'start') vnstat_start ;; 'stop') vnstat_stop ;; 'restart','reload') vnstat_restart ;; 'status') vnstat_status ;; *) echo "Usage: $0 {start|stop|restart|reload|status}" exit 1 ;; esac