aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2022-06-06 22:35:12 +0200
committerLudovic Courtès <ludo@gnu.org>2022-06-06 22:43:31 +0200
commit264ca9452fae827d6621b28b8972f4b1d68401a1 (patch)
treec49f5eeb13d39024c7afc74b357c79ac9fa40689
parent635d49f97ee233bbb2673f97d7556c3c91b55889 (diff)
downloadguix-264ca9452fae827d6621b28b8972f4b1d68401a1.tar.gz
guix-264ca9452fae827d6621b28b8972f4b1d68401a1.zip
services: syslogd: Do not fsync at each line.
Fixes <https://issues.guix.gnu.org/55707>. Previously Inetutils' syslogd would call 'fsync' after each line written to a file. This would significantly increase boot times on machines with slow-ish spinning HDDs, where each 'fsync' call would take between 0.1s and 0.4s (and we'd do two of them for each line, one for /var/log/messages and one for /var/log/debug). * gnu/services/base.scm (%default-syslog.conf): Add a '-' before each file name, except /var/log/secure. Change what goes to /var/log/debug.
-rw-r--r--gnu/services/base.scm13
1 files changed, 7 insertions, 6 deletions
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index f27365bbe6..6865d03f25 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -1397,23 +1397,24 @@ responsible for logging system messages.")))
# level notice or higher and anything of level err or
# higher to the console.
# Don't log private authentication messages!
- *.alert;auth.notice;authpriv.none /dev/console
+ *.alert;auth.notice;authpriv.none -/dev/console
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
- *.info;mail.none;authpriv.none /var/log/messages
+ *.info;mail.none;authpriv.none -/var/log/messages
- # Like /var/log/messages, but also including \"debug\"-level logs.
- *.debug;mail.none;authpriv.none /var/log/debug
+ # Log \"debug\"-level entries and nothing else.
+ *.=debug -/var/log/debug
# Same, in a different place.
- *.info;mail.none;authpriv.none /dev/tty12
+ *.info;mail.none;authpriv.none -/dev/tty12
# The authpriv file has restricted access.
+ # 'fsync' the file after each line (hence the lack of a leading dash).
authpriv.* /var/log/secure
# Log all the mail messages in one place.
- mail.* /var/log/maillog
+ mail.* -/var/log/maillog
"))
(define* (syslog-service #:optional (config (syslog-configuration)))