Provided by: exim4-base_4.97-4ubuntu4.2_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)