X-Git-Url: https://git.hcoop.net/hcoop/debian/courier-authlib.git/blobdiff_plain/8d138742ae268344f406cb75d79aa6bf853f9d87:/liblock/lockmail.html..b0322a8536f3cab76471c98122fe1df75bb7c387:/libs/liblock/static/gitweb.css diff --git a/liblock/lockmail.html b/liblock/lockmail.html deleted file mode 100644 index fcca0fc..0000000 --- a/liblock/lockmail.html +++ /dev/null @@ -1,115 +0,0 @@ - -lockmail

Name

lockmail — create mail lock files

Synopsis

lockmail [-r] [-t timeout] {lockfile} {program} [argument...]

DESCRIPTION

-lockmail is a helper utility for working with mailbox -files. -Mailbox files must be locked to prevent other applications from modifying the -mailbox at the same time. -Different system use different locking conventions. -lockmail uses two of the most common locking mechanisms -in use, which should work reliably on most systems.

-lockfile is the pathname to an existing mailbox -file. -By default, lockmail tries to lock the mailbox every -five seconds (if the mailbox is already locked), and will give up after -three minutes. -After the mailbox is succesfully locked, lockmail runs -program as a child process, with any optional -arguments. -When program terminates, lockmail -removes the mailbox lock, and terminates itself.

OPTIONS

-r

-If a regular lock fails, try a read-only lock. -Use this option to lock mailbox files in a read-only directory.

-t timeout

-If the lock attempt fails, try again for up to -timeout seconds. -The actual timeout is rounded up to the next five second interval -(a lock attempt is tried every five seconds).

DESCRIPTION

-This section briefly describes the locking mechanism used by -lockmail. -lockmail uses three different locking conventions in -order to maximize compatibility with other mail software: -C-Client folder locks, dot-locks, and file locks. -

C-Client folder locks

-Mail software based on the C-Client library creates -lock files named -/tmp/.dddddd.iiiiii. -Here, dddddd and iiiiii -are the device number and the inode number of the mailbox file -(the st_dev and st_ino -fields in the inode), in hexadecimal. -If the process ID saved in the C-Client folder lock file is not valid, -lockmail concludes that it's a stale lock file, and -will remove it.

Note

-A race condition exists where a C-Client process is -killed after it creates a lock file, but before saving its process ID in the -lock file. -The race window is very small, but it exists. -The C-Client library does not appear to ever clear out -the lock file.

-lockmail -attempts to resolve this race condition by deleting zero-length lock files -that are at least five minutes old.

dot-locks

-lockmail -also creates, and honors dot-lock files. -Dot-lock files are first created as temporary files, then linked to -lockfile.lock. -The link operation fails if the dot-lock file already exists. -lockmail -uses an enhanced method of dot-locking, where its process ID, and the name -of the server where lockmail is running is also saved -in its dot-lock file. -If the operation fails due to an existing dot-lock file that was created -by another lockmail process on the same server, and the -process ID no longer exists, this stale dot-lock file is removed immediately. -In all other situations a dot-lock file older than five minutes is considered -stale, and removed. -

Note

-A failure to create a dot-lock file is silently ignored if the reason for -the failure is because -lockmail -does not have the write permission in the dot-lock file's directory. -The incoming mail spool directory (usually -/var/mail) -typically does not have global write permissions, so the attempt to -create the dot-lock file in the spool directory will fail, and -lockmail -will be content with using file-locking only. -

File locks

-The final locking mechanism -lockmail -uses is the operating system's file locking facility. -If -lockmail -fails to obtain all three locks, -lockmail -will sleep for five seconds and try again. -The only exception is a failure to create a dot-lock because of no write -access to the dot-lock file's directory, which is ignored. -If -lockmail -still fails to obtain all required locks in the amount of time specified -by the -t option (or its default value), -lockmail will terminate with the -EX_TEMPFAIL exit code. -

-lockmail -runs program after obtaining the last file -lock, waits until program terminates, and -releases all locks. -program must terminate before any of the locks -obtained by lockmail expire, and are considered stale. -lockmail will then terminate with the same exit code -as program.

EXIT STATUS

-lockmail terminates with the same exit status as -program -lockmail terminates with the EX_TEMPFAIL -exit status if it was unable to obtain a lock, or if -program -was killed by a signal.

SEE ALSO

-maildrop(1), -sendmail(8). -