---
name: "exim_lock"
section: "8"
platform: "linux"
package: "exim4-base"
version: "4.98.2-1+deb13u4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/exim_lock"
---

# exim\_lock(8)

Mailbox maintenance

## 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 operating 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 access a locked mailbox (for example, to take a backup copy) without 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 default 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 assumes 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)](/exim/8.md), /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).
