diff options
author | David Craven <david@craven.ch> | 2016-08-27 15:38:55 +0200 |
---|---|---|
committer | David Craven <david@craven.ch> | 2016-09-06 17:48:59 +0200 |
commit | ec2e2f6ce2f808de20f4770748db43aefd46f0bf (patch) | |
tree | 4138eb01c7e74a10bf1f31bfb4fb0924161c0b7f | |
parent | f2901d824adf8b384f80766e99b0a9a90753abfa (diff) | |
download | guix-ec2e2f6ce2f808de20f4770748db43aefd46f0bf.tar guix-ec2e2f6ce2f808de20f4770748db43aefd46f0bf.tar.gz |
services: syslog: Use syslog-configuration.
* gnu/services/base.scm (<syslog-configuration>): New variable.
(syslog-service-type): Use <syslog-configuration>.
(syslog-service): Use <syslog-configuration>.
* gnu/tests/base.scm (%avahi-os): Use <syslog-configuration>.
* doc/guix.texi (syslog-configuration-type): Add @deftp.
(syslog-service): Update @deffn.
-rw-r--r-- | doc/guix.texi | 21 | ||||
-rw-r--r-- | gnu/services/base.scm | 29 | ||||
-rw-r--r-- | gnu/tests/base.scm | 9 |
3 files changed, 43 insertions, 16 deletions
diff --git a/doc/guix.texi b/doc/guix.texi index b6ca34a2f3..2abb7b231a 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -7719,12 +7719,23 @@ privacy---often the result of host name lookups is in local cache, so external name servers do not even need to be queried. @end defvr +@anchor{syslog-configuration-type} +@deftp {Data Type} syslog-configuration +This data type represents the configuration of the syslog daemon. -@deffn {Scheme Procedure} syslog-service @ - [#:config-file @var{%default-syslog.conf}] -Return a service that runs @command{syslogd}. If the configuration file -name @var{config-file} is not specified, use some reasonable default -settings. +@table @asis +@item @code{syslogd} (default: @code{#~(string-append #$inetutils "/libexec/syslogd")}) +The syslog daemon to use. + +@item @code{config-file} (default: @code{%default-syslog.conf}) +The syslog configuration file to use. + +@end table +@end deftp + +@anchor{syslog-service} +@deffn {Scheme Procedure} syslog-service @var{config} +Return a service that runs a syslog daemon according to @var{config}. @xref{syslogd invocation,,, inetutils, GNU Inetutils}, for more information on the configuration file syntax. diff --git a/gnu/services/base.scm b/gnu/services/base.scm index f3f6408687..2c2962cd8c 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -82,6 +82,9 @@ nscd-service-type nscd-service + + syslog-configuration + syslog-configuration? syslog-service syslog-service-type %default-syslog.conf @@ -885,17 +888,27 @@ given @var{config}---an @code{<nscd-configuration>} object. @xref{Name Service Switch}, for an example." (service nscd-service-type config)) + +(define-record-type* <syslog-configuration> + syslog-configuration make-syslog-configuration + syslog-configuration? + (syslogd syslog-configuration-syslogd + (default #~(string-append #$inetutils "/libexec/syslogd"))) + (config-file syslog-configuration-config-file + (default %default-syslog.conf))) + (define syslog-service-type (shepherd-service-type 'syslog - (lambda (config-file) + (lambda (config) (shepherd-service (documentation "Run the syslog daemon (syslogd).") (provision '(syslogd)) (requirement '(user-processes)) (start #~(make-forkexec-constructor - (list (string-append #$inetutils "/libexec/syslogd") - "--no-detach" "--rcfile" #$config-file))) + (list #$(syslog-configuration-syslogd config) + "--no-detach" + "--rcfile" #$(syslog-configuration-config-file config)))) (stop #~(make-kill-destructor)))))) ;; Snippet adapted from the GNU inetutils manual. @@ -921,14 +934,14 @@ Service Switch}, for an example." mail.* /var/log/maillog ")) -(define* (syslog-service #:key (config-file %default-syslog.conf)) - "Return a service that runs @command{syslogd}. If configuration file -name @var{config-file} is not specified, use some reasonable default -settings. +(define* (syslog-service #:optional (config (syslog-configuration))) + "Return a service that runs @command{syslogd} and takes +@var{<syslog-configuration>} as a parameter. @xref{syslogd invocation,,, inetutils, GNU Inetutils}, for more information on the configuration file syntax." - (service syslog-service-type config-file)) + (service syslog-service-type config)) + (define pam-limits-service-type (let ((security-limits diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm index 41f50c0e7a..5c2af5b6d4 100644 --- a/gnu/tests/base.scm +++ b/gnu/tests/base.scm @@ -384,9 +384,12 @@ functionality tests.") (log-file "/dev/console"))) (syslog-service-type config => - (plain-file - "syslog.conf" - "*.* /dev/console\n"))))))) + (syslog-configuration + (inherit config) + (config-file + (plain-file + "syslog.conf" + "*.* /dev/console\n"))))))))) (define (run-nss-mdns-test) ;; Test resolution of '.local' names via libc. Start the marionette service |