summaryrefslogtreecommitdiffstats
path: root/debian
diff options
context:
space:
mode:
authorDave Olson <olson@cumulusnetworks.com>2017-07-28 06:01:18 +0200
committerDave Olson <olson@cumulusnetworks.com>2017-07-31 21:53:01 +0200
commita7c9d77a08bcf6f3a9529bcf98f7d7cf758a0764 (patch)
treeb9856f3494f861cd3e354a3d78877d2ac920d497 /debian
parentMerge pull request #881 from donaldsharp/ping_traceroute (diff)
downloadfrr-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.logrotate22
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
}