#!/bin/sh
# 
# start system and kernel logging
#

source ${INIT_D:-/sbin/init.d}/functions

case "$1" in
  start)
     need $hostname_available #no exit_if_failed because it works without
     need $no_stale_pid_files #no exit_if_failed because it works without
     
     if [ ! -d /var/log ]; then
       echo -n 'No /var/log directory => logging daemons not started!'
       print_status skipped
       exit 2
     fi    
    
     if [ -e /var/run/syslogd.pid ]; then
       echo -n '/var/run/syslogd.pid exists => syslogd already running!'
       print_status skipped
     else
       echo 'Starting system log daemon...'
       syslogd -m 0
       evaluate_retval || exit_if_failed
     fi

     if [ -e /var/run/klogd.pid ]; then 
       echo -n '/var/run/klogd.pid exists => klogd already running!'
       print_status skipped
     else
       echo 'Starting kernel log daemon...'
       klogd
       evaluate_retval || exit_if_failed
     fi
     ;;
  stop)
     if [ ! -e /var/run/klogd.pid ]; then 
       echo -n '/var/run/klogd.pid does not exist => klogd not running!'
       print_status skipped
     else
       echo 'Stopping kernel log daemon...'
       kill `cat /var/run/klogd.pid` && sleep 1 && test ! -e /var/run/klogd.pid
       evaluate_retval
     fi
     
     if [ ! -e /var/run/syslogd.pid ]; then 
       echo -n '/var/run/syslogd.pid does not exist => syslogd not running!'
       print_status skipped
     else
       echo 'Stopping system log daemon...'
       kill `cat /var/run/syslogd.pid` && sleep 1 && test ! -e /var/run/syslogd.pid
       evaluate_retval
     fi
     ;;
  reload)
     if [ ! -e /var/run/syslogd.pid ]; then 
       echo -n '/var/run/syslogd.pid does not exist => syslogd not running!'
       print_status skipped
     else
       echo "Telling system log daemon to reinitialize..."
       kill -HUP `cat /var/run/syslogd.pid` && sleep 1 && test -e /var/run/syslogd.pid
       evaluate_retval || exit_if_failed
       echo "Telling kernel log daemon to reinitialize..."
       klogd_pid=`cat /var/run.klogd.pid`
       kill -TSTP $klogd_pid && kill -CONT $klogd_pid && sleep 1 && test -e /var/run/klogd.pid
       evaluate_retval || exit_if_failed
     fi
     ;;
  restart)
     $0 stop
     $0 start || exit_if_failed
     ;;
  status)
     statusproc syslogd
     statusproc klogd
     ;;
  *)
     echo 'Usage: '$0' {start|stop|reload|restart|status}'
     exit 1
     ;;
esac
    
exit 0

