#!/bin/bash daemon_bin="/usr/sbin/darkstat" daemon_name=$(basename $daemon_bin) daemon_chroot=/var/$daemon_name daemon_database="$daemon_name.dat" daemon_output="$daemon_chroot/$daemon_name.out" PIDF="$daemon_chroot/$daemon_name.pid" . /etc/rc.conf . /etc/rc.d/functions . /etc/conf.d/$daemon_name.conf get_pid() { pidof -o %PPID $daemon_name } case "$1" in start) stat_busy "Starting $daemon_name daemon" PID=$(get_pid) if [ -z "$PID" ]; then [ -f $PIDF ] && rm -f $PIDF # RUN $daemon_bin --user "$daemon_name" --chroot "$daemon_chroot" \ --import "$daemon_database" \ --export "$daemon_database" \ --pidfile "$(basename $PIDF)" \ -i "$DARKSTAT_IFACE" \ $DARKSTAT_ARGS \ 2>&1 | tee "$daemon_output" ret=$? grep -q error "$daemon_output" 2>/dev/null error_output=$? rm -f "$daemon_output" # if [ $ret -gt 0 -o $error_output -eq 0 ] ; then stat_fail rm -f "$PIDF" exit 1 else add_daemon $daemon_name stat_done fi else stat_fail exit 1 fi ;; stop) stat_busy "Stopping $daemon_name daemon" PID=$(get_pid) # KILL [ ! -z "$PID" ] && kill $PID &> /dev/null # if [ $? -gt 0 ]; then stat_fail exit 1 else rm -f $PIDF &> /dev/null rm_daemon $daemon_name stat_done fi ;; restart) $0 stop sleep 3 $0 start ;; status) stat_busy "Checking $daemon_name status"; ck_status $daemon_name ;; *) echo "usage: $0 {start|stop|restart|status}" esac exit 0