#! /bin/sh # /etc/init.d/sysklogd: start the system log daemon. ### BEGIN INIT INFO # Provides: sysklogd # Required-Start: $remote_fs $time # Required-Stop: $remote_fs $time # Should-Start: $network # Should-Stop: $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: System logger ### END INIT INFO # Source function library. . /etc/init.d/functions PATH=/bin:/usr/bin:/sbin:/usr/sbin pidfile_syslogd=/var/run/syslogd.pid pidfile_klogd=/var/run/klogd.pid binpath_syslogd=/sbin/syslogd binpath_klogd=/sbin/klogd test -x $binpath || exit 0 test ! -r /etc/default/syslogd || . /etc/default/syslogd create_xconsole() { # Only proceed if /dev/xconsole is used at all if ! grep -q '^[^#].*/dev/xconsole' /etc/syslog.conf then return fi if [ ! -e /dev/xconsole ]; then mknod -m 640 /dev/xconsole p else chmod 0640 /dev/xconsole fi chown root:adm /dev/xconsole test ! -x /sbin/restorecon || /sbin/restorecon /dev/xconsole } log_begin_msg () { echo -n $1 } log_end_msg () { echo $1 } log_success_msg () { echo $1 } running() { # No pidfile, probably no daemon present # if [ ! -f $pidfile ] then return 1 fi pid=`cat $pidfile_syslogd` # No pid, probably no daemon present # if [ -z "$pid" ] then return 1 fi if [ ! -d /proc/$pid ] then return 1 fi cmd=`cat /proc/$pid/cmdline | tr "\000" "\n"|head -n 1` # No syslogd? # if [ "$cmd" != "$binpath" ] then return 1 fi return 0 } 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) log_begin_msg "Starting system log daemon..." create_xconsole start-stop-daemon --start --quiet --pidfile $pidfile_syslogd --name syslogd --startas $binpath_syslogd -- $SYSLOGD log_end_msg $? log_begin_msg "Starting kernel log daemon..." start-stop-daemon --start --quiet --pidfile $pidfile_klogd --name klogd --startas $binpath_klogd -- $KLOGD log_end_msg $? ;; stop) log_begin_msg "Stopping system log daemon..." start-stop-daemon --stop --quiet --pidfile $pidfile_syslogd --name syslogd log_end_msg $? log_begin_msg "Stopping kernel log daemon..." start-stop-daemon --stop --quiet --retry 3 --exec $binpath_klogd --pidfile $pidfile_klogd log_end_msg $? ;; reload|force-reload) log_begin_msg "Reloading system log daemon..." start-stop-daemon --stop --quiet --signal 1 --pidfile $pidfile_syslogd --name syslogd log_end_msg $? log_begin_msg "Reloading kernel log daemon..." pid=`cat $pidfile_klogd 2> /dev/null` start-stop-daemon --stop --quiet --retry 3 --exec $binpath_klogd --pidfile $pidfile_klogd waitpid $pid start-stop-daemon --start --quiet --pidfile $pidfile_klogd --name klogd --startas $binpath_klogd -- $KLOGD log_end_msg $? ;; restart) log_begin_msg "Restarting system log daemon..." pid=`cat $pidfile_syslogd 2> /dev/null` start-stop-daemon --stop --retry 5 --quiet --pidfile $pidfile_syslogd --name syslogd waitpid $pid start-stop-daemon --start --quiet --pidfile $pidfile_syslogd --name syslogd --startas $binpath_syslogd -- $SYSLOGD log_end_msg $? log_begin_msg "Reloading kernel log daemon..." pid=`cat $pidfile_klogd 2> /dev/null` start-stop-daemon --stop --quiet --retry 3 --exec $binpath_klogd --pidfile $pidfile_klogd waitpid $pid start-stop-daemon --start --quiet --pidfile $pidfile_klogd --name klogd --startas $binpath_klogd -- $KLOGD log_end_msg $? ;; reload-or-restart) if running then $0 reload else $0 start fi ;; status) status syslogd RETVAL=$? status klogd rval=$? [ $RETVAL -eq 0 ] && exit $rval exit $RETVAL ;; *) log_success_msg "Usage: /etc/init.d/sysklogd {start|stop|reload|restart|force-reload|reload-or-restart|status}" exit 1 esac exit 0