|cmd=<no default>||The command (with options) to spawn as a child process. This string argument is required.|
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.
babysit=0 Integer value - if non-zero, will make sure at least one process is pre-forked, and will set the maxforkrate to 10 if its zero. 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:
[ host : ] port
where path is the explicit 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. Note that if you are listening on multiple network types (i.e. ipv4 and ipv6) then one process will be forked for each address, causing twice as many processes as you might expect. 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 processes to fork per second - the master will insert sleeps to ensure it doesnt fork faster than this on average.
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 cyrus.conf
recover cmd="ctl_cyrusdb -r"
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"
checkpoint cmd="ctl_cyrusdb -c" period=30
delprune cmd="cyr_expire -E 3" at=0400
tlsprune cmd="tls_prune" at=0400
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.
master(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)
|CMU||CYRUS.CONF (5)||Project Cyrus|