summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDariqq <dariqq@posteo.net>2025-10-15 11:27:03 +0000
committerLudovic Courtès <ludo@gnu.org>2025-11-09 22:12:02 +0100
commit49ba3adfdff205aeddbe90ee8757e75009d9eed0 (patch)
tree942de2d2e768c96d8e334d3251c21d2826759654
parent74b718d554e135e07222435a00a70a49541a6d49 (diff)
services: opensmtd: Add back option to log to syslog.
The option for syslog logging was removed in 6036f1f3053bc9b4f0411b5e8aeaab5bd7f4ec7b. * gnu/services/mail.scm (opensmtpd-shepherd-service): When log-file is #f daemonize and set the pid-file. Change-Id: I356f4ccacc473def35708c114947788d485d058b Signed-off-by: Ludovic Courtès <ludo@gnu.org>
-rw-r--r--doc/guix.texi1
-rw-r--r--gnu/services/mail.scm7
2 files changed, 6 insertions, 2 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index 95e9ebb35bb..64ef5964745 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -29879,6 +29879,7 @@ remote servers. Run @command{man smtpd.conf} for more information.
@item @code{log-file} (default: @code{"/var/log/mail.log"})
The file location for the OpenSMTPD log file. Logging occurs in the
foreground via the Shepherd, i.e. OpenSMTPD does not detach.
+When set to @code{#f} OpenSMTPD will instead detach and log to the syslog.
@item @code{setgid-commands?} (default: @code{#t})
Make the following commands setgid to @code{smtpq} so they can be
diff --git a/gnu/services/mail.scm b/gnu/services/mail.scm
index eef46d8f63d..edcc0caa97c 100644
--- a/gnu/services/mail.scm
+++ b/gnu/services/mail.scm
@@ -1744,8 +1744,11 @@ match from local for any action outbound
(documentation "Run the OpenSMTPD daemon.")
(start (let ((smtpd (file-append package "/sbin/smtpd")))
#~(make-forkexec-constructor
- (list #$smtpd "-d" "-f" #$config-file)
- #:log-file #$log-file)))
+ (list #$smtpd "-f" #$config-file
+ #$@(if log-file '("-d") '()))
+ #$@(if log-file
+ (list #:log-file log-file)
+ (list #:pid-file "/var/run/smtpd.pid")))))
(stop #~(make-kill-destructor))))))
(define %opensmtpd-accounts