[PATCH 0/2] Improve syslog service flexibility

  • Open
  • quality assurance status badge
Details
One participant
  • Jean-Baptiste Note
Owner
unassigned
Submitted by
Jean-Baptiste Note
Severity
normal
J
J
Jean-Baptiste Note wrote on 30 Apr 17:34 +0200
(address . guix-patches@gnu.org)(name . Jean-Baptiste Note)(address . jean-baptiste.note@m4x.org)
cover.1714490986.git.jean-baptiste.note@m4x.org
While setting up centralized logging in a guix environment, I had to add flags
to the running syslog on the central server (udp networking, for instance).

Further, I had to use rsyslog instead of syslog.

The following set of patches enable both of these to be done. The patches are
independent conceptually but touch around the same pieces of code, so they're
presented as a set.

Jean-Baptiste Note (2):
services: syslog: Add extra-options argument to syslog service.
services: syslog: Adjust service for rsyslog compatibility.

doc/guix.texi | 3 +++
gnu/services/base.scm | 8 ++++++--
2 files changed, 9 insertions(+), 2 deletions(-)


--
2.41.0
J
J
Jean-Baptiste Note wrote on 30 Apr 17:36 +0200
[PATCH 1/2] services: syslog: Add extra-options argument to syslog service.
(address . 70677@debbugs.gnu.org)(name . Jean-Baptiste Note)(address . jean-baptiste.note@m4x.org)
44cb8b9fe93ffc2fb653657ea18374543d4f33db.1714490986.git.jean-baptiste.note@m4x.org
* gnu/services/base.scm (<syslog-configuration>): Add extra-options field.
(syslog-shepherd-service): Use it when running the service.

* doc/guix.texi: Document it.

Change-Id: I540d070b9a9678b45ec9fa28d6fdc761f9b3fd9a
---
doc/guix.texi | 3 +++
gnu/services/base.scm | 7 +++++--
2 files changed, 8 insertions(+), 2 deletions(-)

Toggle diff (41 lines)
diff --git a/doc/guix.texi b/doc/guix.texi
index 3a9afcd814..81e6283196 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -19442,6 +19442,9 @@ Base Services
@xref{syslogd invocation,,, inetutils, GNU Inetutils}, for more
information on the configuration file syntax.
+@item @code{extra-options} (default: @code{'()})
+List of extra command-line options for @command{syslog}.
+
@end table
@end deftp
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index f35d74ee40..47565a3d5a 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -1553,7 +1553,9 @@ (define-record-type* <syslog-configuration>
(syslogd syslog-configuration-syslogd
(default (file-append inetutils "/libexec/syslogd")))
(config-file syslog-configuration-config-file
- (default %default-syslog.conf)))
+ (default %default-syslog.conf))
+ (extra-options syslog-configuration-extra-options
+ (default '())))
;;; Note: a static file name is used for syslog.conf so that the reload action
;;; work as intended.
@@ -1589,7 +1591,8 @@ (define (syslog-shepherd-service config)
;; action work as intended.
(start #~(make-forkexec-constructor
(list #$(syslog-configuration-syslogd config)
- #$(string-append "--rcfile=" syslog.conf))
+ #$(string-append "--rcfile=" syslog.conf)
+ #$@(syslog-configuration-extra-options config))
#:file-creation-mask #o137
#:pid-file "/var/run/syslog.pid"))
(stop #~(make-kill-destructor))))
--
2.41.0
J
J
Jean-Baptiste Note wrote on 30 Apr 17:36 +0200
[PATCH 2/2] services: syslog: Adjust service for rsyslog compatibility.
(address . 70677@debbugs.gnu.org)(name . Jean-Baptiste Note)(address . jean-baptiste.note@m4x.org)
36338d3a45a4f8644f209373d03b594015c6fd3b.1714490986.git.jean-baptiste.note@m4x.org
* gnu/services/base.scm (syslog-shepherd-service): Change flag for designating
configuration file. The long option is not compatible with rsyslog while the
short is; switch to the short one.
---
gnu/services/base.scm | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

Toggle diff (16 lines)
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 47565a3d5a..0d73e5344e 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -1591,7 +1591,8 @@ (define (syslog-shepherd-service config)
;; action work as intended.
(start #~(make-forkexec-constructor
(list #$(syslog-configuration-syslogd config)
- #$(string-append "--rcfile=" syslog.conf)
+ ;; the -f option here is compatible with rsyslog
+ #$(string-append "-f " syslog.conf)
#$@(syslog-configuration-extra-options config))
#:file-creation-mask #o137
#:pid-file "/var/run/syslog.pid"))
--
2.41.0
?