cyrus.conf.5.html   [plain text]


<!-- Creator     : groff version 1.18.1.1 -->
<!-- CreationDate: Wed Feb  7 14:01:44 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>CYRUS.CONF</title>
</head>
<body>

<h1 align=center>CYRUS.CONF</h1>
<a href="#NAME">NAME</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#SECTION DESCRIPTIONS">SECTION DESCRIPTIONS</a><br>
<a href="#EXAMPLE">EXAMPLE</a><br>
<a href="#ACCESS CONTROL">ACCESS CONTROL</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p>cyrus.conf &minus; Cyrus configuration file</p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>/etc/cyrus.conf</b> is the configuration file for the
Cyrus <b>master</b> process. It defines the startup
procedures, services and events to be spawned by
<b>master</b>.</p>
<!-- INDENTATION -->
<p>The <b>/etc/cyrus.conf</b> file consists of a series of
entries divided into sections of the form</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="20%"></td>
<td width="79%">
<p><i>section</i> {</p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="30%"></td>
<td width="69%">
<p><i>name arguments</i></p></td>
</table>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="3" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="38%"></td>
<td width="7%">

<p><i>...</i></p>
</td>
<td width="54%">
</td>
<tr valign="top" align="left">
<td width="38%"></td>
<td width="7%">

<p><i>...</i></p>
</td>
<td width="54%">
</td>
<tr valign="top" align="left">
<td width="38%"></td>
<td width="7%">

<p><i>...</i></p>
</td>
<td width="54%">
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="20%"></td>
<td width="79%">
<p>}</p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p>where <i>section</i> is the name of the section,
<i>name</i> is the name of the entry and <i>arguments</i> is
the whitespace-separated list of arguments for the
entry.</p>
<!-- INDENTATION -->
<p>Blank lines and lines beginning with
&lsquo;&lsquo;#&rsquo;&rsquo; are ignored.</p>
</td>
</table>
<a name="SECTION DESCRIPTIONS"></a>
<h2>SECTION DESCRIPTIONS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p>The paragraphs below detail the three sections
(<b>START</b>, <b>SERVICES</b>, <b>EVENTS</b>) that can be
placed in the <b>/etc/cyrus.conf</b> file. The arguments
that are available for each entry within the section are
described, and each argument&rsquo;s default value is
shown.</p>
<!-- INDENTATION -->
<p>Arguments can appear in any order. Some arguments have no
default value, these are listed with &lsquo;&lsquo;&lt;no
default&gt;&rsquo;&rsquo;. For string arguments, the value
MUST be enclosed in double quotes.</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="4%"></td>
<td width="95%">
<p><b>START</b></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p>This section lists the processes to run before any
<b>SERVICES</b> are spawned. This section is typically used
to initialize databases and start long running daemons.</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>cmd=</b>&lt;no default&gt;</p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="19%"></td>
<td width="80%">
<p>The command (with options) to spawn as a child process.
This string argument is required.</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="4%"></td>
<td width="95%">
<p><b>SERVICES</b></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p>This section is the heart of the <b>/etc/cyrus.conf</b>
file. It lists the processes that should be spawned to
handle client connections made on certain Internet/UNIX
sockets.</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>cmd=</b>&lt;no default&gt;</p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="19%"></td>
<td width="80%">
<p>The command (with options) to spawn as a child process.
This string argument is required.</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>listen=</b>&lt;no default&gt;</p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="19%"></td>
<td width="80%">
<p>The UNIX or internet socket to listen on. This string
field is required and takes one of the following forms:</p>
<!-- INDENTATION -->
<p><i>path</i><br>
[ <i>host</i> <b>:</b> ] <i>port</i></p>
<!-- INDENTATION -->
<p>where <i>path</i> is the explicit path to a UNIX socket,
<i>host</i> is either the hostname or bracket-enclosed IP
address of a network interface, and <i>port</i> is either a
port number or service name (as listed in
<b>/etc/services</b>).</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>proto=</b>tcp</p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="19%"></td>
<td width="80%">
<p>The protocol used for this service (<i>tcp</i>,
<i>tcp4</i>, <i>tcp6</i>, <i>udp</i>, <i>udp4</i>,
<i>udp6</i>). This string argument is optional.</p>
<!-- INDENTATION -->
<p><b>tcp4</b>, <b>udp4</b>: These arguments are used to
bind the service to IPv4 only.<b><br>
tcp6</b>, <b>udp6</b>: These arguments are used to bind the
service to IPv6 only, if the operating system supports
this.<b><br>
tcp</b>, <b>udp</b>: These arguments are used to bind to
both IPv4 and IPv6 if possible.</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>prefork=</b>0</p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="19%"></td>
<td width="80%">
<p>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.</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>provide_uuid=</b>0</p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="19%"></td>
<td width="80%">
<p>Provide the service the required information for
constructing universally unique identifiers (UUIDs) for
messages. This option is only used for IMAP, NNTP and LMTP
services when replicating the mailstore between servers.</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>maxchild=</b>-1</p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="19%"></td>
<td width="80%">
<p>The maximum number of instances of this service to spawn.
A value of -1 means unlimited. This integer value is
optional.</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>maxfds=</b>256</p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="19%"></td>
<td width="80%">
<p>The maximum number of file descriptors to which to limit
this process. This integer value is optional.</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="4%"></td>
<td width="95%">
<p><b>EVENTS</b></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p>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.</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>cmd=</b>&lt;no default&gt;</p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="19%"></td>
<td width="80%">
<p>The command (with options) to spawn as a child process.
This string argument is required.</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>period=</b>0</p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="19%"></td>
<td width="80%">
<p>The interval (in minutes) at which to run the command.
This integer value is optional, but SHOULD be a positive
integer &gt; 10.</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>at=</b>&lt;hhmm&gt;</p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="19%"></td>
<td width="80%">
<p>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.</p>
</td>
</table>
<a name="EXAMPLE"></a>
<h2>EXAMPLE</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p># example cyrus.conf</p>
</td>
</table>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="5" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="-2%">

<p>START { recover</p>
</td>
<td width="7%"></td>
<td width="7%"></td>
<td width="77%">

<p>cmd=&quot;ctl_cyrusdb -r&quot;</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p>}</p>
</td>
</table>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="6" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="-2%">

<p>SERVICES { imap</p>
</td>
<td width="7%"></td>
<td width="7%"></td>
<td width="7%">
</td>
<td width="70%">

<p>cmd=&quot;imapd&quot; listen=&quot;imap&quot; prefork=1
imaps</p>
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="-2%"></td>
<td width="7%"></td>
<td width="7%"></td>
<td width="7%">
</td>
<td width="70%">

<p>cmd=&quot;imapd -s&quot; listen=&quot;imaps&quot;
prefork=0 lmtpunix</p>
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="-2%"></td>
<td width="7%"></td>
<td width="7%"></td>
<td width="7%"></td>
<td width="70%">

<p>cmd=&quot;lmtpd&quot;
listen=&quot;/var/imap/socket/lmtp&quot; lmtp</p>
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="-2%"></td>
<td width="7%"></td>
<td width="7%"></td>
<td width="7%">
</td>
<td width="70%">

<p>cmd=&quot;lmtpd&quot;
listen=&quot;localhost:lmtp&quot;</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p>}</p>
</td>
</table>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="5" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="-2%">

<p>EVENTS { checkpoint</p>
</td>
<td width="14%"></td>
<td width="7%"></td>
<td width="70%">

<p>cmd=&quot;ctl_cyrusdb -c&quot; period=30 delprune</p>
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="-2%"></td>
<td width="14%"></td>
<td width="7%"></td>
<td width="70%">

<p>cmd=&quot;cyr_expire -E 3&quot; at=0400 tlsprune</p>
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="-2%"></td>
<td width="14%"></td>
<td width="7%"></td>
<td width="70%">

<p>cmd=&quot;tls_prune&quot; at=0400</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p>}</p>
</td>
</table>
<a name="ACCESS CONTROL"></a>
<h2>ACCESS CONTROL</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p>When TCP Wrappers is used to control access to Cyrus
services, the <i>name</i> of the service entry should be
used as the process name in the <b>hosts_access(5)</b>
table. For instance, in the example above, &quot;imap&quot;,
&quot;imaps&quot;, &quot;lmtpunix&quot; and &quot;lmtp&quot;
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.</p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>master(8)</b>, <b>imapd(8)</b>, <b>pop3d(8)</b>,
<b>lmtpd(8)</b>, <b>timsieved(8)</b>, <b>idled(8)</b>,
<b>notifyd(8)</b>, <b>ctl_cyrusdb(8)</b>,
<b>ctl_deliver(8)</b>, <b>tls_prune(8)</b>,
<b>hosts_access(5)</b></p>
</td>
</table>
<hr>
</body>
</html>