Package: rsyslog
Version: 8.24.0-1
Severity: normal
Tags: patch

Dear Maintainer,

when I change hostname (for example if it is assigned by dhcp), the logs keep
appearing with the same name, so this is terrible when logs are being forwarded
to a central log machine, because the hostnames don't match.

However, rsyslog supports reload (at least, the upstart unit does) and after
that, it uses the proper hostname.

However the sysvinit script that is provided does not support this feature, so
when not using upstart, it is not available.

I have made a very simple change to the script to support reload.

Best

-- System Information:
Debian Release: 9.0
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.9.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=it_IT.UTF-8, LC_CTYPE=it_IT.UTF-8 (charmap=UTF-8) (ignored: LC_ALL 
set to it_IT.UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages rsyslog depends on:
ii  init-system-helpers  1.47
ii  libc6                2.24-9
ii  libestr0             0.1.10-2
ii  libfastjson4         0.99.4-1
ii  liblogging-stdlog0   1.0.5-2
ii  liblognorm5          2.0.1-1.1
ii  libsystemd0          232-18
ii  libuuid1             2.29.1-1
ii  lsb-base             9.20161125
ii  zlib1g               1:1.2.8.dfsg-5

Versions of packages rsyslog recommends:
ii  logrotate  3.11.0-0.1

Versions of packages rsyslog suggests:
pn  rsyslog-doc                    <none>
pn  rsyslog-gnutls                 <none>
pn  rsyslog-gssapi                 <none>
pn  rsyslog-mongodb                <none>
pn  rsyslog-mysql | rsyslog-pgsql  <none>
pn  rsyslog-relp                   <none>

-- Configuration Files:
/etc/init.d/rsyslog changed:
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="enhanced syslogd"
NAME=rsyslog
RSYSLOGD=rsyslogd
DAEMON=/usr/sbin/rsyslogd
PIDFILE=/var/run/rsyslogd.pid
SCRIPTNAME=/etc/init.d/$NAME
[ -x "$DAEMON" ] || exit 0
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
. /lib/lsb/init-functions
do_start()
{
        # Return
        #   0 if daemon has been started
        #   1 if daemon was already running
        #   other if daemon could not be started or a failure occured
        start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- 
$RSYSLOGD_OPTIONS
}
do_stop()
{
        # Return
        #   0 if daemon has been stopped
        #   1 if daemon was already stopped
        #   other if daemon could not be stopped or a failure occurred
        start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile 
$PIDFILE --exec $DAEMON
}
do_rotate() {
        start-stop-daemon --stop --signal HUP --quiet --pidfile $PIDFILE --exec 
$DAEMON
}
create_xconsole() {
        XCONSOLE=/dev/xconsole
        if [ "$(uname -s)" != "Linux" ]; then
                XCONSOLE=/run/xconsole
                ln -sf $XCONSOLE /dev/xconsole
        fi
        if [ ! -e $XCONSOLE ]; then
                mknod -m 640 $XCONSOLE p
                chown root:adm $XCONSOLE
                [ -x /sbin/restorecon ] && /sbin/restorecon $XCONSOLE
        fi
}
sendsigs_omit() {
        OMITDIR=/run/sendsigs.omit.d
        mkdir -p $OMITDIR
        ln -sf $PIDFILE $OMITDIR/rsyslog
}
case "$1" in
  start)
        log_daemon_msg "Starting $DESC" "$RSYSLOGD"
        create_xconsole
        do_start
        case "$?" in
                0) sendsigs_omit
                   log_end_msg 0 ;;
                1) log_progress_msg "already started"
                   log_end_msg 0 ;;
                *) log_end_msg 1 ;;
        esac
        ;;
  stop)
        log_daemon_msg "Stopping $DESC" "$RSYSLOGD"
        do_stop
        case "$?" in
                0) log_end_msg 0 ;;
                1) log_progress_msg "already stopped"
                   log_end_msg 0 ;;
                *) log_end_msg 1 ;;
        esac
        ;;
  rotate)
        log_daemon_msg "Closing open files" "$RSYSLOGD"
        do_rotate
        log_end_msg $?
        ;;
  reload)
        if test -e $PIDFILE; then
                kill -HUP $(cat $PIDFILE)
        else
                echo "Not running" >&2
                exit 1
        fi
        ;;
  restart|force-reload)
        $0 stop
        $0 start
        ;;
  try-restart)
        $0 status >/dev/null 2>&1 && $0 restart
        ;;
  status)
        status_of_proc -p $PIDFILE $DAEMON $RSYSLOGD && exit 0 || exit $?
        ;;
  *)
        echo "Usage: $SCRIPTNAME 
{start|stop|rotate|restart|reload|force-reload|try-restart|status}" >&2
        exit 3
        ;;
esac
:


-- no debconf information
>From 0787484528b0b8080783144e81f8dec11db01cca Mon Sep 17 00:00:00 2001
From: Salvo 'LtWorf' Tomaselli <tipos...@tiscali.it>
Date: Thu, 23 Feb 2017 11:52:05 +0100
Subject: [PATCH] Add reload support

---
 debian/rsyslog.init | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/debian/rsyslog.init b/debian/rsyslog.init
index 1e5aa32..b80a92a 100644
--- a/debian/rsyslog.init
+++ b/debian/rsyslog.init
@@ -110,6 +110,14 @@ case "$1" in
        do_rotate
        log_end_msg $?
        ;;
+  reload)
+       if test -e $PIDFILE; then
+               kill -HUP $(cat $PIDFILE)
+       else
+               echo "Not running" >&2
+               exit 1
+       fi
+        ;;
   restart|force-reload)
        $0 stop
        $0 start
@@ -121,7 +129,7 @@ case "$1" in
        status_of_proc -p $PIDFILE $DAEMON $RSYSLOGD && exit 0 || exit $?
        ;;
   *)
-       echo "Usage: $SCRIPTNAME 
{start|stop|rotate|restart|force-reload|try-restart|status}" >&2
+       echo "Usage: $SCRIPTNAME 
{start|stop|rotate|restart|reload|force-reload|try-restart|status}" >&2
        exit 3
        ;;
 esac
-- 
2.11.0

Reply via email to