cyrus.conf

CYRUS.CONF(5)                 File Formats Manual                CYRUS.CONF(5)



 *

NAME
       cyrus.conf - Cyrus configuration file

DESCRIPTION
       /etc/cyrus.conf is the configuration file for the Cyrus master process.
       It defines the startup procedures, services and events to be spawned by
       master.

       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.

       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 it's 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:

            path
            [ 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 doesn't fork faster than this on
            average.

   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
       cyrus-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                              Project Cyrus                   CYRUS.CONF(5)