diff options
author | Dave Olson <olson@cumulusnetworks.com> | 2017-07-28 06:01:18 +0200 |
---|---|---|
committer | Dave Olson <olson@cumulusnetworks.com> | 2017-07-31 21:53:01 +0200 |
commit | a7c9d77a08bcf6f3a9529bcf98f7d7cf758a0764 (patch) | |
tree | b9856f3494f861cd3e354a3d78877d2ac920d497 /debian | |
parent | Merge pull request #881 from donaldsharp/ping_traceroute (diff) | |
download | frr-a7c9d77a08bcf6f3a9529bcf98f7d7cf758a0764.tar.xz frr-a7c9d77a08bcf6f3a9529bcf98f7d7cf758a0764.zip |
Switch to using syslog for logging as the default
Switch to using syslog as the default logging mechanism, rather than
the log file mechanism.
Send SIGHUP to syslog (any process with syslog in the name) if they have
files open in /var/log/frr/* (for debian, using lsof). For redhat, add
sending HUP to any of the pids in /var/run/*syslog*pid, for /var/log/frr/frr.log
Updated logrotate.d/frr to handle all the new daemons for debian; redhat
already had them.
Continue to send SIGUSR1 to all running frr daemons even when syslog is
in use, in case logging has been switched from file to syslog or vice versa.
For debian, accumulate all the PIDs and use a single kill command.
Add /etc/rsyslogd.d/45-frr.conf to have all frr daemons (and tag
frr) logs go to /var/log/frr/frr.log. If other syslog daemons are
used, logs will go to default log file.
Signed-off-by: Dave Olson <olson@cumulusnetworks.com>
Diffstat (limited to 'debian')
-rw-r--r-- | debian/frr.logrotate | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/debian/frr.logrotate b/debian/frr.logrotate index 0dd68fb25..9a1fa2149 100644 --- a/debian/frr.logrotate +++ b/debian/frr.logrotate @@ -7,11 +7,21 @@ create 640 frr frrvty postrotate - for i in zebra bgpd ripd ospfd ripngd ospf6d isisd pimd; do - if [ -e /var/run/frr/$i.pid ] ; then - kill -USR1 `cat /var/run/frr/$i.pid` - fi - - done + pid=$(lsof -t -a -c /syslog/ /var/log/frr/* 2>/dev/null) + if [ -n "$pid" ] + then # using syslog + kill -HUP $pid + fi + # in case using file logging; if switching back and forth + # between file and syslog, rsyslogd might still have file + # open, as well as the daemons, so always signal the daemons. + # It's safe, a NOP if (only) syslog is being used. + for i in babeld bgpd eigrpd isisd ldpd nhrpd ospf6d ospfd \ + pimd ripd ripngd zebra ; do + if [ -e /var/run/frr/$i.pid ] ; then + pids="$pids $(cat /var/run/frr/$i.pid)" + fi + done + [ -n "$pids" ] && kill -USR1 $pids endscript } |