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