EXIM_LOCK(8) System Manager's Manual EXIM_LOCK(8)
NAME
exim_lock - Mailbox maintenance
SYNOPSIS
exim_lock [options]mailbox-file
DESCRIPTION
The exim_lock utility locks a mailbox file using the same algorithm as
Exim. For a discussion of locking issues, see section "appendfile
transport", subsection "Operational details for appending" the Exim
specification. exim_lock can be used to prevent any modification of a
mailbox by Exim or a user agent while investigating a problem. The
utility requires the name of the file as its first argument. If the
locking is successful, the second argument is run as a command (using
C's "system()" function); if there is no second argument, the value of
the SHELL environment variable is used; if this is unset or empty,
/bin/sh is run. When the command finishes, the mailbox is unlocked and
the utility ends. The following options are available:
-fcntl Use "fcntl()" locking on the open mailbox.
-flock Use "flock()" locking on the open mailbox, provided the operat-
ing system supports it.
-interval
This must be followed by a number, which is a number of seconds;
it sets the interval to sleep between retries (default 3).
-lockfile
Create a lock file before opening the mailbox.
-mbx Lock the mailbox using MBX rules.
-q Suppress verification output.
-retries
This must be followed by a number; it sets the number of times
to try to get the lock (default 10).
-restore_time
This option causes exim_lock to restore the modified and read
times to the locked file before exiting. This allows you to ac-
cess a locked mailbox (for example, to take a backup copy) with-
out disturbing the times that the user subsequently sees.
-timeout
This must be followed by a number, which is a number of seconds;
it sets a timeout to be used with a blocking "fcntl()" lock. If
it is not set (the default), a non-blocking call is used.
-v Generate verbose output.
If none of -fcntl, -flock, -lockfile or -mbx are given, the de-
fault is to create a lock file and also use "fcntl()" locking on
the mailbox, which is the same as Exim's default. The use of
-fcntl or -flock requires that the file be writable; the use of
-lockfile requires that the directory containing the file be
writable. Locking by lock file does not last for ever; Exim as-
sumes that a lock file is expired if it is more than 30 minutes
old.
The -mbx can be used with either or both of -fcntl or -flock.
It assumes -fcntl by default. MBX locking causes a shared lock
to be taken out on the open mailbox, and an exclusive lock on
the file /tmp/.n.m where n and m are the device number and inode
number of the mailbox file. When the locking is released, if an
exclusive lock can be obtained for the mailbox, the file in /tmp
is deleted.
The default output contains verification of the locking that
takes place. The -v option causes some additional information
to be given. The -q option suppresses all output except error
messages.
A command such as
exim_lock /var/spool/mail/spqr
runs an interactive shell while the file is locked, whereas
exim_lock -q /var/spool/mail/spqr <<End
<some commands>
End
runs a specific non-interactive sequence of commands while the file is
locked, suppressing all verification output. A single command can be
run by a command such as
exim_lock -q /var/spool/mail/spqr "cp /var/spool/mail/spqr
/some/where"
Note that if a command is supplied, it must be entirely contained
within the second argument - hence the quotes.
BUGS
This manual page needs a major re-work. If somebody knows better groff
than us and has more experience in writing manual pages, any patches
would be greatly appreciated.
SEE ALSO
exim(8), /usr/share/doc/exim4-base/
AUTHOR
This manual page was stitched together from spec.txt by Andreas Metzler
<ametzler at downhill.at.eu.org>, for the Debian GNU/Linux system (but
may be used by others).
May 12, 2020 EXIM_LOCK(8)