#-----------------------------------------------------------------------------
#
#      File         :  startlog
#      Abstract     :  Set up a terminal window to capture module debug output
#
#-----------------------------------------------------------------------------


# Verify superuser access
if [ `id -u` != 0 ]; then
    echo
    echo "   *********************************************"
    echo "   * You must be superuser, logged in as root, *"
    echo "   * or have sufficient rights to kill/start   *"
    echo "   * daemons and view log messages.            *"
    echo "   *********************************************"
    echo
    echo "  ---- ERROR: Admin rights not detected, halting ----"
    echo
    exit
fi

clear
echo


# Determine which log daemon is installed
SysLogd=syslogd
sbin_dir=/sbin
if [ -f /sbin/rsyslogd ]; then
    SysLogd=rsyslogd
fi
if [ -f /usr/sbin/rsyslogd ]; then
    SysLogd=rsyslogd
    sbin_dir=/usr/sbin
fi


# Stop kernel log daemon if running
if [ -f /var/run/klogd.pid ]; then
    echo Stopping current klogd \(PID=`cat /var/run/klogd.pid`\)...
    kill -s TERM `cat /var/run/klogd.pid`
    # Delay to let daemon halt
    sleep 1
fi


# Get PID for rsyslogd
if [ -f /var/run/rsyslogd.pid ]; then
    Rlogd_PID=`cat /var/run/rsyslogd.pid`
else
    Rlogd_PID=`ps -A | awk "\\$4==\"rsyslogd\" {print \\$1}"`
fi

# Stop rsyslogd if running
if [ "$Rlogd_PID" != "" ]; then
    echo Stopping current rsyslogd \(PID=$Rlogd_PID\)...
    kill -s TERM $Rlogd_PID
    # Delay to let daemon halt
    sleep 1
fi


# Stop syslogd if running
if [ -f /var/run/syslogd.pid ]; then
    echo Stopping current syslogd \(PID=`cat /var/run/syslogd.pid`\)...
    kill -s TERM `cat /var/run/syslogd.pid`
    # Delay to let daemon halt
    sleep 1
fi


# Start new daemon only if 'syslogd'
if [ "${SysLogd}" = "syslogd" ]; then
    if [ -f ${sbin_dir}/${SysLogd} ]; then
        echo Starting new ${SysLogd}...
        ${sbin_dir}/${SysLogd}
    fi
fi


# Log to console or file if supplied
if [ "$1" = "" ]; then
    echo Start log to console...
    echo ">>>>>"
    echo
    cat /proc/kmsg
else
    echo Start log to file \'$1\'...
    echo ">>>>>"
    cat /proc/kmsg | tee $1
fi
