MASTER(8)

πŸ’… MASTER(8) β€” the Cyrus IMAP master process, bestie edition ✨

okay so welcome to master(8) from the Cyrus IMAP docs β€” this is the page about the Cyrus IMAP master process, and ngl she is THE mother of the whole operation πŸ‘‘


✨ NAME ✨

master β€” Cyrus IMAP documentation

The Cyrus IMAP master process. She runs the whole friend group, fr fr.


πŸŽ€ SYNOPSIS πŸŽ€

master [ -C config-file ] [ -M alternate cyrus.conf ]
    [ -l listen queue ] [ -p pidfile ] [ -r ready_file ]
    [ -j janitor period ] [ -d | -D ] [ -L logfile ]

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so master is the process that controls all of the Cyrus processes. She is the one responsible for creating all imapd, pop3d, lmtpd and timsieved child processes. She also does the scheduled cleanup/maintenance, because someone has to keep the group chat tidy πŸ’–

If this process dies, then no new sessions will be started. πŸ’€ That's it, that's the whole vibe. No master, no new friends.

She kills herself and all child processes when she receives a SIGTERM. Dramatic? Maybe. Necessary? Absolutely. πŸ‘‘

master reads its configuration options out of the imapd.conf(5) file unless specified otherwise by -C.


πŸ’… OPTIONS πŸ’…

  • -C alternate imapd.conf β€” use the specified configuration file config-file rather than the default imapd.conf(5). Girl said "I'll use my own config, thanks" ✨
  • -M alternate cyrus.conf β€” specifies an alternate cyrus.conf for use by master.
  • -l listen queue backlog β€” increase the listen queue backlog. By default, the listen queue is set to 32. On systems with a high connection rate, it may be desirable to increase this value. refer to listen(2) for details. highkey only touch this if your server is busy busy 🫢
  • -j janitor full-sweeps per second β€” sets the number of times per second the janitor should sweep the entire child table. Leave it at the default of 1 unless you have a really high fork rate (and you have not increased the child hash table size when you compiled Cyrus from its default of 10000 entries). no cap, just leave it alone πŸ™ˆ
  • -p pidfile β€” use pidfile as the pidfile. If not specified, defaults to master_pid_file from imapd.conf(5), which defaults to {configdirectory}/master.pid
  • -r ready_file β€” use ready_file as the ready file. If not specified, uses master_ready_file from imapd.conf(5), which defaults to {configdirectory}/master.ready
  • -d β€” start in daemon mode (run in background and disconnect from controlling terminal). main character energy, she's leaving the group chat to go do her own thing 🌈
  • -D β€” don't close stdin/stdout/stderr. Primarily useful for debugging. Note that -d and -D cannot be used together; consider using -L instead. it's giving "pick one, bestie, you cannot have both" 😭
  • -L logfile β€” redirect stdout and stderr to the given logfile.

🧚 CONFIGURATION 🧚

Upon execution, master reads its configuration information out of the cyrus.conf(5) file, or an alternative if -M is used.

master rereads its configuration file when it receives a hangup signal, SIGHUP. Services and events may be added, deleted or modified when the configuration file is reread. Any active services removed from the configuration file will be allowed to run until completion. Services added or modified to listen on a privileged port may not be able to bind the port, depending on your system configuration. In this case a full restart is needed. no shortcuts, sorry bestie πŸ˜”

master propagates the hangup signal, SIGHUP, to its child service processes, so that they stop waiting for incoming connections and exit, allowing them to be recycled. This is useful to make services take into account a new version of the imapd.conf(5) file. Children that are servicing a client connection when SIGHUP is received are allowed to run until the client logouts before being recycled. It may take a long time until the client logouts, so a log message is generated for processes that have not been recycled within 30s. the way she's patient with her children but also watching the clock ⏰


⭐ NOTES ⭐

The environment variable CYRUS_VERBOSE can be set to log additional debugging information. Setting the value to 1 results in base level logging. Setting it higher results in more log messages being generated. louder = more lore πŸ“’

The cyr_info(8) utility's proc subcommand can be used to list the active processes that master is managing. very "who's in the group chat rn" energy πŸ‘€


🌸 FILES 🌸

/etc/cyrus.conf, /etc/imapd.conf, /var/run/master.pid


🫢 SEE ALSO 🫢

cyrus.conf(5), imapd.conf(5), imapd(8), pop3d(8), lmtpd(8), timsieved(8), idled(8), cyr_info(8)


πŸ‘‘ AUTHOR πŸ‘‘

The Cyrus Team, Nic Bernstein (Onlight)


1993–2026, The Cyrus Team


and that's the whole page, bestie β€” this was version 3.12.4 from Sep 09, 2026 (source: Cyrus IMAP), so if your box is running something else, go check your local master(8) before you come for me πŸ’…βœ¨ ily, go read cyrus.conf(5) next πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from