ldmd − Unidata LDM Server (version 6)


ldmd [-I IP_addr] [-l logdest] [-M max_clients] [-m max_latency] [-n] [-o toffset] [-P port] [-q pqfname] [-t rpctimeo] [−vxyz] [conf_filename]


This program is the LDM server.

The LDM server performs several functions:


It starts up the programs which access a local product queue (see pq(3)). These are specified by the "exec" entries in the configuration file. It serves as the process group leader for these programs and specialized copies of itself.


It forks processes which request and then receive data from other LDM servers. The data received is placed in the product queue and the local programs are notified. This function is controlled by the "request" entries in the configuration file.


It compiles access control information from the configuration file. These are the "accept" (input) and "allow" (output) entries. They are used to determine which hosts can request what services from this server.


It registers a TCP RPC service for version 5 and version 6 of the protocol. It listens for connections, performs access control similar to tcpd and forks to service requests on that connection.

conf_filename is the pathname of the configuration file. The default

is printed by the command "regutil /server/config-path".


-I IP_addr

IP address of network interface to use. The default is printed by the command "regutil /server/ip-addr".

−l logdest

Log to logdest. One of ’’ (system logging daemon), ’-’ (standard error stream), or file logdest. If the standard error stream is specified, then the process will not daemonize itself. Default is the standard error stream if the process has a controlling terminal (i.e., the process isn’t a daemon); otherwise, log messages will be sent to either the LDM log file or the system logging daemon (execute this program with just the option ’-?’ to determine which).

-M max_clients

The maximum number of clients allowed to connect to the LDM server before additional connections are rejected. The default is printed by the command "regutil /server/max-clients".

-m max_latency

For connections using LDM 5 protocols only. Receipt of a product older than max_latency (plus rpctimeo) seconds triggers a RECLASS response, which generally causes the sender to skip ahead in it’s queue. If toffset was specified, then the "from" time of the RECLASS response is toffset seconds before now, otherwise, max_latency is used. The default is printed by the command "regutil /server/max-latency".


Do nothing other than check the invocation arguments and check the configuration-file for errors.

-o toffset

No products older than toffset seconds are requested. The default is printed by the command "regutil /server/time-offset". The value of toffset should be less than or equal to max_latency.

-P port

Port on the remote host on which to connect. The default is printed by the command "regutil /server/port". The well-known LDM port is 388.

-q pqfname

Set the pathname of the data product queue to pqfname. The default is printed by the command "regutil /queue/path". As a convenience, the process group leader sets the environment variable LDMPQFNAME to this value, overriding the default in cooperative children.

-t rpctimeo

Sets the timeout for LDM 5 remote procedure calls to rpctimeo seconds.


Verbose logging. Informative messages (level LOG_INFO) are logged. By default, only messages of severity LOG_NOTICE and greater are logged. Incoming products are logged as they are received.


Debug logging. Debugging messages (level LOG_DEBUG) are logged. At least three times the output of verbose logging. A message is printed for each RPC transaction (except NULLPROC). In particular, the progress of incoming products is may be monitored. The MD5 checksum of each product is printed.


Use logging timestamps with microsecond resolution. The default is second resolution.


Use logging timestamps formatted according to the ISO 8601 standard (e.g. YYYYMMDDThhmmss). The default is Mon day hh:mm:ss



Normal termination. If sent to the process group leader, it forwards the signal to the process group and waits termination of all the children. SIGINT Slightly expedited termination. If sent to the process group leader, it still sends SIGTERM to the process group and waits. Caution: killing receivers with SIGINT or SIGKILL (-9) can result in queue corruption.


Cyclically increment the verbosity of the program. Assumming the program was started without the -v or -x switches, the first SIGUSR2 will make it verbose and LOG_INFO priority messages will appear. The second will turn on the LOG_DEBUG priority messages as well. A third will take it back to the normal state.


ulog(3), syslogd(8), portmap(8), http://www.unidata.ucar.edu/software/ldm/.


If you have problems with this program, then you should first examine the LDM email archive for similar problems and how they were solved. The email archive is available via the following URL:


If this does not suffice, then send an inquiry via email -- together will all relevant information -- to