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 â create mail lock files
lockmail
[-r] [-t timeout
] {lockfile
} {program
} [argument...]
-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
-argument
s.
-When program
terminates, lockmail
-removes the mailbox lock, and terminates itself.
-If a regular lock fails, try a read-only lock. -Use this option to lock mailbox files in a read-only directory.
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).
-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. -
-Mail software based on the C-Client
library creates
-lock files named
-/tmp/.
.
-Here, dddddd
.iiiiii
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.
-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.
-lockmail
-also creates, and honors dot-lock files.
-Dot-lock files are first created as temporary files, then linked to
-
.
-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.
-lockfile
.lock
-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.
-
-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
.