| #! /bin/sh |
| ### BEGIN INIT INFO |
| # Provides: sysklogd |
| # Required-Start: $remote_fs $time |
| # Required-Stop: $remote_fs $time |
| # Default-Start: 2 3 4 5 |
| # Default-Stop: 0 1 6 |
| # Short-Description: System logger |
| ### END INIT INFO |
| |
| set -e |
| |
| if [ -f /etc/syslog-startup.conf ]; then |
| . /etc/syslog-startup.conf |
| LOG_LOCAL=0 |
| LOG_REMOTE=0 |
| for D in $DESTINATION; do |
| if [ "$D" = "buffer" ]; then |
| SYSLOG_ARGS="$SYSLOG_ARGS -C$BUFFERSIZE" |
| LOG_LOCAL=1 |
| elif [ "$D" = "file" ]; then |
| if [ -n "$LOGFILE" ]; then |
| SYSLOG_ARGS="$SYSLOG_ARGS -O $LOGFILE" |
| fi |
| if [ -n "$ROTATESIZE" ]; then |
| SYSLOG_ARGS="$SYSLOG_ARGS -s $ROTATESIZE" |
| fi |
| if [ -n "$ROTATEGENS" ]; then |
| SYSLOG_ARGS="$SYSLOG_ARGS -b $ROTATEGENS" |
| fi |
| LOG_LOCAL=1 |
| elif [ "$D" = "remote" ]; then |
| SYSLOG_ARGS="$SYSLOG_ARGS -R $REMOTE" |
| LOG_REMOTE=1 |
| fi |
| done |
| if [ "$LOG_LOCAL" = "1" -a "$LOG_REMOTE" = "1" ]; then |
| SYSLOG_ARGS="$SYSLOG_ARGS -L" |
| fi |
| if [ "$REDUCE" = "yes" ]; then |
| SYSLOG_ARGS="$SYSLOG_ARGS -S" |
| fi |
| if [ "$DROPDUPLICATES" = "yes" ]; then |
| SYSLOG_ARGS="$SYSLOG_ARGS -D" |
| fi |
| if [ -n "$LOGLEVEL" ]; then |
| SYSLOG_ARGS="$SYSLOG_ARGS -l $LOGLEVEL" |
| fi |
| else |
| # default: log to 16K shm circular buffer |
| SYSLOG_ARGS="-C" |
| fi |
| |
| waitpid () |
| { |
| pid=$1 |
| # Give pid a chance to exit before we restart with a 5s timeout in 1s intervals |
| if [ -z "$pid" ]; then |
| return |
| fi |
| timeout=5; |
| while [ $timeout -gt 0 ] |
| do |
| timeout=$(( $timeout-1 )) |
| kill -0 $pid 2> /dev/null || break |
| sleep 1 |
| done |
| } |
| |
| case "$1" in |
| start) |
| echo -n "Starting syslogd/klogd: " |
| start-stop-daemon -S -b -n syslogd -a /sbin/syslogd -- -n $SYSLOG_ARGS |
| start-stop-daemon -S -b -n klogd -a /sbin/klogd -- -n |
| echo "done" |
| ;; |
| stop) |
| echo -n "Stopping syslogd/klogd: " |
| start-stop-daemon -K -n syslogd |
| start-stop-daemon -K -n klogd |
| echo "done" |
| ;; |
| restart) |
| pid1=`pidof syslogd` |
| pid2=`pidof klogd` |
| $0 stop |
| waitpid $pid1 |
| waitpid $pid2 |
| $0 start |
| ;; |
| *) |
| echo "Usage: syslog { start | stop | restart }" >&2 |
| exit 1 |
| ;; |
| esac |
| |
| exit 0 |