Provided by: exim4-base_4.96-3ubuntu1_amd64 bug

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), /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)