This script is not always called with /sbin and /usr/sbin in the PATH already, for example when called via ssh. Explicitly set PATH to make sure it includes /sbin and /usr/sbin since that's where start-stop-daemon is located. (From OE-Core rev: fa53f898eaba15dff030f9eadf86e5bca7d954fa) Signed-off-by: Martijn de Gouw <martijn.de.gouw@prodrive-technologies.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2.1 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
PATH="/bin:/usr/bin:/sbin:/usr/sbin"
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