1#! /bin/sh 2### BEGIN INIT INFO 3# Provides: sysklogd 4# Required-Start: $remote_fs $time 5# Required-Stop: $remote_fs $time 6# Default-Start: 2 3 4 5 7# Default-Stop: 0 1 6 8# Short-Description: System logger 9### END INIT INFO 10 11set -e 12 13if [ -f /etc/syslog-startup.conf ]; then 14 . /etc/syslog-startup.conf 15 LOG_LOCAL=0 16 LOG_REMOTE=0 17 for D in $DESTINATION; do 18 if [ "$D" = "buffer" ]; then 19 SYSLOG_ARGS="$SYSLOG_ARGS -C$BUFFERSIZE" 20 LOG_LOCAL=1 21 elif [ "$D" = "file" ]; then 22 if [ -n "$LOGFILE" ]; then 23 SYSLOG_ARGS="$SYSLOG_ARGS -O $LOGFILE" 24 fi 25 if [ -n "$ROTATESIZE" ]; then 26 SYSLOG_ARGS="$SYSLOG_ARGS -s $ROTATESIZE" 27 fi 28 if [ -n "$ROTATEGENS" ]; then 29 SYSLOG_ARGS="$SYSLOG_ARGS -b $ROTATEGENS" 30 fi 31 LOG_LOCAL=1 32 elif [ "$D" = "remote" ]; then 33 SYSLOG_ARGS="$SYSLOG_ARGS -R $REMOTE" 34 LOG_REMOTE=1 35 fi 36 done 37 if [ "$LOG_LOCAL" = "1" -a "$LOG_REMOTE" = "1" ]; then 38 SYSLOG_ARGS="$SYSLOG_ARGS -L" 39 fi 40 if [ "$REDUCE" = "yes" ]; then 41 SYSLOG_ARGS="$SYSLOG_ARGS -S" 42 fi 43 if [ "$DROPDUPLICATES" = "yes" ]; then 44 SYSLOG_ARGS="$SYSLOG_ARGS -D" 45 fi 46 if [ -n "$LOGLEVEL" ]; then 47 SYSLOG_ARGS="$SYSLOG_ARGS -l $LOGLEVEL" 48 fi 49else 50 # default: log to 16K shm circular buffer 51 SYSLOG_ARGS="-C" 52fi 53 54waitpid () 55{ 56 pid=$1 57 # Give pid a chance to exit before we restart with a 5s timeout in 1s intervals 58 if [ -z "$pid" ]; then 59 return 60 fi 61 timeout=5; 62 while [ $timeout -gt 0 ] 63 do 64 timeout=$(( $timeout-1 )) 65 kill -0 $pid 2> /dev/null || break 66 sleep 1 67 done 68} 69 70case "$1" in 71 start) 72 echo -n "Starting syslogd/klogd: " 73 start-stop-daemon -S -b -n syslogd -a /sbin/syslogd -- -n $SYSLOG_ARGS 74 start-stop-daemon -S -b -n klogd -a /sbin/klogd -- -n 75 echo "done" 76 ;; 77 stop) 78 echo -n "Stopping syslogd/klogd: " 79 start-stop-daemon -K -n syslogd 80 start-stop-daemon -K -n klogd 81 echo "done" 82 ;; 83 restart) 84 pid1=`pidof syslogd` 85 pid2=`pidof klogd` 86 $0 stop 87 waitpid $pid1 88 waitpid $pid2 89 $0 start 90 ;; 91 *) 92 echo "Usage: syslog { start | stop | restart }" >&2 93 exit 1 94 ;; 95esac 96 97exit 0 98