1CYRUS.CONF(5) File Formats Manual CYRUS.CONF(5)
2
3
4
5 *
6
8 cyrus.conf - Cyrus configuration file
9
11 /etc/cyrus.conf is the configuration file for the Cyrus master process.
12 It defines the startup procedures, services and events to be spawned by
13 master.
14
15 The /etc/cyrus.conf file consists of a series of entries divided into
16 sections of the form
17
18 section {
19 name arguments
20 ...
21 ...
22 ...
23 }
24
25 where section is the name of the section, name is the name of the entry
26 and arguments is the whitespace-separated list of arguments for the
27 entry.
28
29 Blank lines and lines beginning with ``#'' are ignored.
30
32 The paragraphs below detail the three sections (START, SERVICES,
33 EVENTS) that can be placed in the /etc/cyrus.conf file. The arguments
34 that are available for each entry within the section are described, and
35 each argument's default value is shown.
36
37 Arguments can appear in any order. Some arguments have no default
38 value, these are listed with ``<no default>''. For string arguments,
39 the value MUST be enclosed in double quotes.
40
41 START
42 This section lists the processes to run before any SERVICES are
43 spawned. This section is typically used to initialize databases and
44 start long running daemons.
45
46 cmd=<no default>
47 The command (with options) to spawn as a child process. This
48 string argument is required.
49
50 SERVICES
51 This section is the heart of the /etc/cyrus.conf file. It lists the
52 processes that should be spawned to handle client connections made on
53 certain Internet/UNIX sockets.
54
55 babysit=0
56 Integer value - if non-zero, will make sure at least one process
57 is pre-forked, and will set the maxforkrate to 10 if it's zero.
58
59 cmd=<no default>
60 The command (with options) to spawn as a child process. This
61 string argument is required.
62
63 listen=<no default>
64 The UNIX or internet socket to listen on. This string field is
65 required and takes one of the following forms:
66
67 path
68 [ host : ] port
69
70 where path is the explicit path to a UNIX socket, host is either
71 the hostname or bracket-enclosed IP address of a network inter‐
72 face, and port is either a port number or service name (as listed
73 in /etc/services).
74
75 proto=tcp
76 The protocol used for this service (tcp, tcp4, tcp6, udp, udp4,
77 udp6). This string argument is optional.
78
79 tcp4, udp4: These arguments are used to bind the service to IPv4
80 only.
81 tcp6, udp6: These arguments are used to bind the service to IPv6
82 only, if the operating system supports this.
83 tcp, udp: These arguments are used to bind to both IPv4 and IPv6
84 if possible.
85
86 prefork=0
87 The number of instances of this service to always have running and
88 waiting for a connection (for faster initial response time). This
89 integer value is optional. Note that if you are listening on mul‐
90 tiple network types (i.e. ipv4 and ipv6) then one process will be
91 forked for each address, causing twice as many processes as you
92 might expect.
93
94 maxchild=-1
95 The maximum number of instances of this service to spawn. A value
96 of -1 means unlimited. This integer value is optional.
97
98 maxfds=256
99 The maximum number of file descriptors to which to limit this
100 process. This integer value is optional.
101
102 maxforkrate=0
103 Maximum number of processes to fork per second - the master will
104 insert sleeps to ensure it doesn't fork faster than this on aver‐
105 age.
106
107 EVENTS
108 This section lists processes that should be run at specific intervals,
109 similar to cron jobs. This section is typically used to perform sched‐
110 uled cleanup/maintenance.
111
112 cmd=<no default>
113 The command (with options) to spawn as a child process. This
114 string argument is required.
115
116 period=0
117 The interval (in minutes) at which to run the command. This inte‐
118 ger value is optional, but SHOULD be a positive integer > 10.
119
120 at=<hhmm>
121 The time (24-hour format) at which to run the command each day.
122 If set to a valid time (0000-2359), period is automatically set to
123 1440. This string argument is optional.
124
126 # example cyrus.conf
127
128 START {
129 recover cmd="ctl_cyrusdb -r"
130 }
131
132 SERVICES {
133 imap cmd="imapd" listen="imap" prefork=1
134 imaps cmd="imapd -s" listen="imaps" prefork=0
135 lmtpunix cmd="lmtpd" listen="/var/imap/socket/lmtp"
136 lmtp cmd="lmtpd" listen="localhost:lmtp"
137 }
138
139 EVENTS {
140 checkpoint cmd="ctl_cyrusdb -c" period=30
141 delprune cmd="cyr_expire -E 3" at=0400
142 tlsprune cmd="tls_prune" at=0400
143 }
144
146 When TCP Wrappers is used to control access to Cyrus services, the name
147 of the service entry should be used as the process name in the
148 hosts_access(5) table. For instance, in the example above, "imap",
149 "imaps", "lmtpunix" and "lmtp" would be used as the process names.
150 This allows a single daemon such as imapd to be run in different modes
151 or configurations (i.e., SSL and non-SSL enabled) yet still have sepa‐
152 rate access control rules.
153
155 cyrus-master(8), imapd(8), pop3d(8), lmtpd(8), timsieved(8), idled(8),
156 notifyd(8), ctl_cyrusdb(8), ctl_deliver(8), tls_prune(8),
157 hosts_access(5)
158
159
160
161CMU Project Cyrus CYRUS.CONF(5)