The change to ensure the existing processes shut down had a clear copy and paste error. This really fixes syslog to avoid errors on restart. (From OE-Core rev: 9f674a88c781c7092d5b3460922a1579b9fe4bf9) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2.0 KiB
#! /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