lockd - NFS lock daemon
/usr/etc/rpc.lockd [ -g graceperiod ] [ -l ] [ nservers ]
lockd provides the inherently stateful locking services within the
stateless NFS environment. It allows the locking of records and files
between applications running on different physical machines sharing the
same filesystems mounted with NFS. nservers is the number of lockd
servers to start.
Locks are presently advisory only. The lock style implemented by lockd
is that specified in the SVID (see lockf(3C) and fcntl(2)). There is no
interaction between the lockd's locks and flock(3B) style locks.
lockd is started during system initialization if the chkconfig(1M) lockd
flag is set on. Command-line options belong in
If nfsd(1M) is running, lockd registers its RPC services and exits,
leaving nfsd to handle the requests.
lockd processes lock requests that are either sent locally by the kernel
or remotely by another lock daemon. In the case of local lock requests
for remote data, lockd forwards the lock requests to the server site's
lock daemon through the RPC/XDR(3R) package. lockd then requests the
local status monitor daemon, statd(1M), for monitor service of the
server. The reply to the lock request is not sent to the kernel until
the status daemon and the server site's lock daemon have replied.
When a server recovers, it waits for a grace period for all client site
lockds to submit reclaim requests. Client site lockds are notified by
the statd of the server recovery and promptly resubmit previously granted
lock requests. If a lockd fails to secure a previously granted lock at
the server site, it sends SIGUSR1 to the application process. The
process must explicitly handle this signal if the loss of a lock should
cause it to terminate.
-g graceperiod lockd uses graceperiod (seconds) as the grace period
duration instead of the default value (see TUNING
-l Set SVID locks for files which are locked by DOS
machines running PC-NFS and compatible file sharing
utilities. Normally, lockd does not set SVID locks for
lockd has four tunable parameters: lockd_grace_period,
lock_share_requests, nlm_granted_timeout, and nlm_maxdupreqs.
lockd_grace_period controls the starup grace period for the reclaiming of
locks. This was previously controlled by the -g command line option.
Lock_share_requests tells lockd to preform UNIX file locking for share
and unshare requests. Nlm_granted_timeout controls the timeout used in
making NLM_GRANTED and NLMPROC_GRANTED callbacks for blocked lock
requests which have been granted. This value is specified in tenths of a
second. Nlm_maxdupreqs controls how many NLM RPC duplicate request cache
entries are allocated. The default setting is 0. This causes the
allocation to be sized based upon the memory size of the system.
The reply to a lock request for remote data is delayed until all daemons
In the Sun implementation, lockd sends SIGLOST. when a lock is lost.
The IRIX implementation sends SIGUSR1. Programs should establish a
signal handler to catch this signal and exit.
For client operations, lockd is no longer used as the intermediary for
NLM RPCs. The kernel makes the RPCs to the server directly. These calls
all use UDP. There is no support for TCP as a transport for NLM RPCs on
the client side.
Since NLM RPCs are handled by the NFS server nfsd, both TCP and UDP are
accepted as transports on the server side. For blocked lock requests,
however, the NLM_GRANTED or NLM_GRANTED_MSG RPC will be sent using UDP
regardless of what transport the client used.
statd(1M), fcntl(2), signal(2), lockf(3C).
PPPPaaaaggggeeee 2222 [ Back ]