NAME
cyrus.conf - Cyrus configuration file
DESCRIPTION
/etc/cyrus.conf is the configuration file for the Cyrus cyrmaster
process. It defines the startup procedures, services and events to be
spawned by cyrmaster.
The /etc/cyrus.conf file consists of a series of entries divided into
sections of the form
section {
name arguments
...
...
...
}
where section is the name of the section, name is the name of the entry
and arguments is the whitespace-separated list of arguments for the
entry.
Blank lines and lines beginning with ``#'' are ignored.
SECTION DESCRIPTIONS
The paragraphs below detail the three sections (START, SERVICES,
EVENTS) that can be placed in the /etc/cyrus.conf file. The arguments
that are available for each entry within the section are described, and
each argument's default value is shown.
Arguments can appear in any order. Some arguments have no default
value, these are listed with ``<no default>''. For string arguments,
the value MUST be enclosed in double quotes.
START
This section lists the processes to run before any SERVICES are
spawned. This section is typically used to initialize databases and
start long running daemons.
cmd=<no default>
The command (with options) to spawn as a child process. This
string argument is required.
SERVICES
This section is the heart of the /etc/cyrus.conf file. It lists the
processes that should be spawned to handle client connections made on
certain Internet/UNIX sockets.
cmd=<no default>
The command (with options) to spawn as a child process. This
string argument is required.
listen=<no default>
The UNIX or internet socket to listen on. This string field is
required and takes one of the following forms:
path
[ host : ] port
where path is the explicit (absolute) path to a UNIX socket, host
is either the hostname or bracket-enclosed IP address of a network
interface, and port is either a port number or service name (as
listed in /etc/services).
proto=tcp
The protocol used for this service (tcp, tcp4, tcp6, udp, udp4,
udp6). This string argument is optional.
tcp4, udp4: These arguments are used to bind the service to IPv4
only.
tcp6, udp6: These arguments are used to bind the service to IPv6
only, if the operating system supports this.
tcp, udp: These arguments are used to bind to both IPv4 and IPv6
if possible.
prefork=0
The number of instances of this service to always have running and
waiting for a connection (for faster initial response time). This
integer value is optional.
For datagram-based services (udp), the maximum value of prefork is
1.
maxchild=-1
The maximum number of instances of this service to spawn. A value
of -1 means unlimited. This integer value is optional.
maxfds=256
The maximum number of file descriptors to which to limit this
process. This integer value is optional.
maxforkrate=0
Maximum number of forks per second for this service. A value of
zero means unlimited fork rate. This integer value is optional.
babysit=0
Set to non-zero to guarantee that at least one child will always
be available for new connections. The value of maxchild is
ignored if all children are busy and babysit is active. This
integer value is optional.
EVENTS
This section lists processes that should be run at specific intervals,
similar to cron jobs. This section is typically used to perform
scheduled cleanup/maintenance.
cmd=<no default>
The command (with options) to spawn as a child process. This
string argument is required.
period=0
The interval (in minutes) at which to run the command. This
integer value is optional, but SHOULD be a positive integer > 10.
at=<hhmm>
The time (24-hour format) at which to run the command each day.
If set to a valid time (0000-2359), period is automatically set to
1440. This string argument is optional.
EXAMPLE
# example cyrus.conf
START {
recover cmd="ctl_cyrusdb -r"
}
SERVICES {
imap cmd="imapd" listen="imap" prefork=1
imaps cmd="imapd -s" listen="imaps" prefork=0
lmtpunix cmd="lmtpd" listen="/var/imap/socket/lmtp"
lmtp cmd="lmtpd" listen="localhost:lmtp"
}
EVENTS {
checkpoint cmd="ctl_cyrusdb -c" period=30
delprune cmd="cyr_expire -E 3" at=0400
tlsprune cmd="tls_prune" at=0400
}
ACCESS CONTROL
When TCP Wrappers is used to control access to Cyrus services, the name
of the service entry should be used as the process name in the
hosts_access(5) table. For instance, in the example above, "imap",
"imaps", "lmtpunix" and "lmtp" would be used as the process names.
This allows a single daemon such as imapd to be run in different modes
or configurations (i.e., SSL and non-SSL enabled) yet still have
separate access control rules.
SEE ALSO
cyrmaster(8), imapd(8), pop3d(8), lmtpd(8), timsieved(8), idled(8),
notifyd(8), ctl_cyrusdb(8), ctl_deliver(8), tls_prune(8),
hosts_access(5)