blob: 2208613e8c6d1250211a14c43443b5fef3cb0ea2 [file] [log] [blame]
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001#! /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
Brad Bishop96ff1982019-08-19 13:50:42 -040054waitpid ()
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
Patrick Williamsc124f4f2015-09-15 14:41:29 -050070case "$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)
Brad Bishop96ff1982019-08-19 13:50:42 -040084 pid1=`pidof syslogd`
85 pid2=`pidof klogd`
86 $0 stop
87 waitpid $pid1
88 waitpid $pid2
Patrick Williamsc124f4f2015-09-15 14:41:29 -050089 $0 start
90 ;;
91 *)
92 echo "Usage: syslog { start | stop | restart }" >&2
93 exit 1
94 ;;
95esac
96
97exit 0