summaryrefslogtreecommitdiffstats
path: root/doc/wiki/IMAPServer.Hibernation.txt
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 09:51:24 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 09:51:24 +0000
commitf7548d6d28c313cf80e6f3ef89aed16a19815df1 (patch)
treea3f6f2a3f247293bee59ecd28e8cd8ceb6ca064a /doc/wiki/IMAPServer.Hibernation.txt
parentInitial commit. (diff)
downloaddovecot-upstream.tar.xz
dovecot-upstream.zip
Adding upstream version 1:2.3.19.1+dfsg1.upstream/1%2.3.19.1+dfsg1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'doc/wiki/IMAPServer.Hibernation.txt')
-rw-r--r--doc/wiki/IMAPServer.Hibernation.txt51
1 files changed, 51 insertions, 0 deletions
diff --git a/doc/wiki/IMAPServer.Hibernation.txt b/doc/wiki/IMAPServer.Hibernation.txt
new file mode 100644
index 0000000..21d4a3f
--- /dev/null
+++ b/doc/wiki/IMAPServer.Hibernation.txt
@@ -0,0 +1,51 @@
+Hibernation
+===========
+
+This is not supported on kqueue based systems currently, such as FreeBSD.
+
+Dovecot supports moving connections that have issued IDLE to a special holding
+process, called imap-hibernate. This process is responsible for holding the
+idle processes until they need to be thawed.
+
+Configuration
+-------------
+
+'imap_hibernate_timeout' specifies the delay before moving users to
+'imap-hibernate' process. This requires inter-process communication between
+'imap' and 'imap-hibernate' process.
+
+---%<-------------------------------------------------------------------------
+imap_hibernate_timeout = 5s
+
+service imap {
+ # Note that this change will allow any process running as
+ # $default_internal_user (dovecot) to access mails as any other user.
+ # This may be insecure in some installations, which is why this isn't
+ # done by default.
+ unix_listener imap-master {
+ user = $default_internal_user
+ }
+}
+
+# The following is the default already in v2.3.1+:
+service imap {
+ extra_groups = $default_internal_group
+}
+service imap-hibernate {
+ unix_listener imap-hibernate {
+ mode = 0660
+ group = $default_internal_group
+ }
+}
+---%<-------------------------------------------------------------------------
+
+How it works
+------------
+
+When client issues IDLE, the connection socket is moved to the hibernation
+process. This process is responsible for keeping all connections that are
+idling, until they issue some command that requires them to be thawed into a
+imap process. This way, memory and CPU resources are saved, since there is only
+one hibernation process.
+
+(This file was created from the wiki on 2019-06-19 12:42)