#!/sbin/runscript

opts="statusdss statusadmin restart"

depend() {
        need net
        use dns
}

start() {
        ebegin "Starting DSS (per Streaming Admin Server)"
        /usr/sbin/streamingadminserver.pl
        eend $?
}

stop(){

        PIDFILE="/var/run/darwinstreaming/adminserver.pid"

        if [ -f "$PIDFILE" ]; then

                PID=`cat "$PIDFILE"`
                ps axo pid | grep $PID &>/dev/null

                if [ $? -eq 0 ]; then
                        ebegin "Stopping Streaming Admin Server"
                        kill $PID
                        eend $?
                else
                        einfo "Streaming Admin Server not running."
                        ebegin "Dropping stale PID file"
                        rm "$PIDFILE"
                        eend $?
                fi

        else
                einfo "Streaming Admin Server not running obviously."
        fi


        # DSS isn't writing PID file actually
        # --> use ps to check for running instance

        PID=`ps axo user,pid,cmd | grep -E '^qtss ' | grep Streaming | awk '{print $2}'`

        if [ $? -eq 0 ]; then
                ebegin "Stopping DSS"
                kill $PID
                eend $?
        else
                einfo "DSS not running."
        fi

}

statusdss() {
        PIDFILE="/var/run/darwinstreaming/DarwinStreamingServer.pid"
        if [ -f "$PIDFILE" ]; then

                PID=`cat "$PIDFILE"`
                ps axo pid | grep PID &>/dev/null

                if [ $? -eq 0 ]; then
                        einfo "DSS is running"
                        return 0
                else
                        ewarning "found stale PID file"
                fi
        fi

        einfo "DSS is not running"
        return 1
}

statusadmin() {
        PIDFILE="/var/run/darwinstreaming/adminserver.pid"
        if [ -f "$PIDFILE" ]; then

                PID=`cat "$PIDFILE"`
                ps axo pid | grep PID &>/dev/null

                if [ $? -eq 0 ]; then
                        einfo "Streaming Admin Server is running"
                        return 0
                else
                        ewarning "found stale PID file"
                fi
        fi

        einfo "Streaming Admin Server is not running"
        return 1
}

restart() {
        stop
        start
}

