Provided by: exim4-base_4.86.2-2ubuntu2.6_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 25.2.  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.

       -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).

       -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, -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  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  option is mutually exclusive with -fcntl.  It 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).

                                          March 26, 2003                             EXIM_LOCK(8)