---
name: "rpc.statd"
section: "8"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["linux", "freebsd", "openbsd", "macos"]
url: "https://new.carta.tech/rpc.statd"
---

# rpc.statd(8)

host status monitoring daemon

## NAME

**rpc.statd** – host status monitoring daemon

## SYNOPSIS

**rpc.statd** \[**-d**\] \[**-F**\] \[**-h** *bindip*\] \[**-p** *port*\]

## DESCRIPTION

The **rpc.statd** utility is a daemon which co-operates with **rpc.statd** daemons on other hosts to provide a status monitoring service. The daemon accepts requests from programs running on the local host (typically, [rpc.lockd(8)](/rpc.lockd/8.md), the NFS file locking daemon) to monitor the status of specified hosts. If a monitored host crashes and restarts, the remote daemon will notify the local daemon, which in turn will notify the local program(s) which requested the monitoring service. Conversely, if this host crashes and re-starts, when the **rpc.statd** re-starts, it will notify all of the hosts which were being monitored at the time of the crash.

The following option is available:

- **-d**

  Cause debugging information to be written to syslog, recording all RPC transactions to the daemon. These messages are logged with level LOG\_DEBUG and facility LOG\_DAEMON. Error conditions are logged irrespective of this option, using level LOG\_ERR.

- **-F**

  Run **rpc.statd** in the foreground, rather than going into daemon mode. This is useful if some other process uses [fork(2)](/fork/2.md) and [exec(3)](/exec/3.md) to run **rpc.statd**, and wants to monitor when and how it exits.

- **-h** *bindip*

  Specify specific IP addresses to bind to. This option may be specified multiple times. If no **-h** option is specified, **rpc.statd** will bind to INADDR\_ANY. Note that when specifying IP addresses with **-h**, **rpc.statd** will automatically add 127.0.0.1 and if IPv6 is enabled, ::1 to the list.

- **-p**

  The **-p** option allow to force the daemon to bind to the specified *port*, for both AF\_INET and AF\_INET6 address families.

The **rpc.statd** utility must NOT be invoked by [inetd(8)](/inetd/8.md) because the protocol assumes that the daemon will run from system start time. Instead, it should be run from [rc(8)](/rc/8.md) after the network has been started.

## FILES

- */var/db/statd.status*

  non-volatile record of currently monitored hosts.

- */usr/include/rpcsvc/sm\_inter.x*

  RPC protocol specification used by local applications to register monitoring requests.

## SEE ALSO

[syslog(3)](/syslog/3.md), [rc(8)](/rc/8.md), [rpc.lockd(8)](/rpc.lockd/8.md)

## STANDARDS

The implementation is based on the specification in X/Open CAE Specification C218, "Protocols for X/Open PC Interworking: XNFS, Issue 4", ISBN 1 872630 66 9

## BUGS

There is no means for the daemon to tell when a monitored host has disappeared permanently (e.g. catastrophic hardware failure), as opposed to transient failure of the host or an intermediate router. At present, it will re-try notification attempts at frequent intervals for 10 minutes, then hourly, and finally gives up after 24 hours.

The protocol requires that symmetric monitor requests are made to both the local and remote daemon in order to establish a monitored relationship. This is convenient for the NFS locking protocol, but probably reduces the usefulness of the monitoring system for other applications.

The current implementation uses more than 1Kbyte per monitored host in the status file (and also in VM). This may be inefficient for NFS servers with large numbers of clients.
