lockd(1M)                                                            lockd(1M)


NAME
     lockd - NFS lock daemon

SYNOPSIS
     /usr/etc/rpc.lockd [ -g graceperiod ] [ -l ] [ nservers ]

DESCRIPTION
     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
     /etc/config/lockd.options.

     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.

OPTIONS
     -g graceperiod   lockd uses graceperiod (seconds) as the grace period
                      duration instead of the default value (see TUNING
                      below).

     -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
                      such requests.


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

NOTES
     The reply to a lock request for remote data is delayed until all daemons
     become available.

     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.

SEE ALSO
     statd(1M), fcntl(2), signal(2), lockf(3C).


                                                                        Page 2