From be8dd4a5fec804f2f004dd3a87c2872af44dc88d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Lassieur?= Date: Sat, 10 Nov 2018 18:45:27 +0100 Subject: [PATCH] services: dovecot: Allow to set 'process-limit'. * doc/guix.texi (Mail Services): Update accordingly. * gnu/services/mail.scm (service-configuration)[process-limit]: New field. (dovecot-configuration)[services]: Set 'process-limit' to its correct default value. --- doc/guix.texi | 9 +++++++++ gnu/services/mail.scm | 17 ++++++++++++++--- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index d4178ce9ea..c74351dd87 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -14364,6 +14364,15 @@ Number of connections to handle before starting a new process. Typically the only useful values are 0 (unlimited) or 1. 1 is more secure, but 0 is faster. . Defaults to @samp{1}. + +@end deftypevr + +@deftypevr {@code{service-configuration} parameter} non-negative-integer process-limit +Maximum number of processes that can exist for this service. If set to +0, @code{default-process-limit} is used instead. + +Defaults to @samp{0}. + @end deftypevr @deftypevr {@code{service-configuration} parameter} non-negative-integer process-min-avail diff --git a/gnu/services/mail.scm b/gnu/services/mail.scm index abc1c15cfe..dfbdf6d6cc 100644 --- a/gnu/services/mail.scm +++ b/gnu/services/mail.scm @@ -301,6 +301,10 @@ (define-configuration service-configuration "Number of connections to handle before starting a new process. Typically the only useful values are 0 (unlimited) or 1. 1 is more secure, but 0 is faster. .") + (process-limit + (non-negative-integer 0) + "Maximum number of processes that can exist for this service. If set to 0, +@code{default-process-limit} is used instead.") (process-min-avail (non-negative-integer 0) "Number of processes to always keep waiting for more connections.") @@ -482,6 +486,7 @@ (define-configuration dovecot-configuration (service-configuration (kind "imap-login") (client-limit 0) + (process-limit 0) (listeners (list (inet-listener-configuration (protocol "imap") (port 143) (ssl? #f)) @@ -495,14 +500,17 @@ (define-configuration dovecot-configuration (service-configuration (kind "lmtp") (client-limit 1) + (process-limit 0) (listeners (list (unix-listener-configuration (path "lmtp") (mode "0666"))))) (service-configuration (kind "imap") - (client-limit 1)) + (client-limit 1) + (process-limit 1024)) (service-configuration (kind "pop3") - (client-limit 1)) + (client-limit 1) + (process-limit 1024)) (service-configuration (kind "auth") ;; In what could be taken to be a bug, the default value of 1 for ;; service-count makes it so that a PAM auth worker can't fork off @@ -514,14 +522,17 @@ (define-configuration dovecot-configuration ;; 30. (service-count 30) (client-limit 0) + (process-limit 1) (listeners (list (unix-listener-configuration (path "auth-userdb"))))) (service-configuration (kind "auth-worker") - (client-limit 1)) + (client-limit 1) + (process-limit 0)) (service-configuration (kind "dict") (client-limit 1) + (process-limit 0) (listeners (list (unix-listener-configuration (path "dict"))))))) "List of services to enable. Available services include @samp{imap}, @samp{imap-login}, @samp{pop3}, @samp{pop3-login}, @samp{auth}, and