Amd is a daemon that
automatically mounts file systems whenever a file or directory
within that file system is accessed. File systems are automatically
unmounted when they appear to be quiescent.

Amd operates by
attaching itself as an NFS server to each of the specified
directories. Lookups within the specified directories are
handled by amd, which uses the map defined by mapname
to determine how to resolve the lookup. Generally, this will be a
host name, some file system information and some mount options for
the given file system.

In the first form
depicted above, amd will print a short help string. In the
second form, if no options are specified, or if the −F
is used, amd will read configuration parameters from the
file conf_file which defaults to /etc/amd.conf. The
last form is described below.

OPTIONS
−atemporary-directory

Specify an alternative location for the
real mount points. The default is /.amd_mnt.

−cduration

Specify a duration, in seconds,
that a looked up name remains cached when not in use. The default
is 5 minutes.

−ddomain

Specify the local domain name. If this
option is not given the domain name is determined from the
hostname.

−kkernel-arch

Specifies the kernel architecture. This
is used solely to set the ${karch} selector.

−llogfile

Specify a logfile in which to record
mount and unmount events. If logfile is the string
syslog, the log messages will be sent to the system log
daemon by syslog(3). The default syslog facility used is
LOG_DAEMON. If you wish to change it, append its name to the log
file name, delimited by a single colon. For example, if
logfile is the string
‘‘syslog:local7’’ then amd will log
messages via syslog(3) using the LOG_LOCAL7 facility (if it exists
on the system).

−n

Normalize hostnames.
The name referred to by ${rhost} is normalized relative to the host
database before being used. The effect is to translate aliases into
‘‘official’’ names.

−oop_sys_ver

Override the compiled-in version number
of the operating system. Useful when the built in version is not
desired for backward compatibility reasons. For example, if the
build in version is ‘‘2.5.1’’, you can
override it to ‘‘5.5.1’’, and use older
maps that were written with the latter in mind.

−p

Print PID.
Outputs the process-id of amd to standard output where it
can be saved into a file.

−r

Restart existing
mounts. Amd will scan the mount file table to determine
which file systems are currently mounted. Whenever one of these
would have been auto-mounted, amdinherits it.

−ttimeout.retransmit

Specify the NFS timeout
interval, in tenths of a second, between NFS/RPC retries
(for UDP only). The default is 0.8 seconds. The second value alters
the retransmit counter, which defaults to 11 retransmissions. Both
of these values are used by the kernel to communicate with amd.
Useful defaults are supplied if either or both values are
missing.

Specify an alternative NIS domain from
which to fetch the NIS maps. The default is the system domain name.
This option is ignored if NIS support is not available.

−Ccluster-name

Specify an alternative HP-UX cluster
name to use.

−Doption

Select from a variety of debug options.
Prefixing an option with the string no reverses the effect
of that option. Options are cumulative. The most useful option is
all.

Since −D
is only used for debugging other options are not documented here:
the current supported set of options is listed by the
−v option and a fuller description is available in the
program source.

−Fconf_file

Specify an amd configuration
file to use. See amd.conf(5) for description of this file’s
format. This configuration file is used to specify any options in
lieu of typing many of them on the command line. The
amd.conf file includes directives for every command line
option amd has, and many more that are only available via the
configuration file facility. The configuration file specified by
this option is processed after all other options have been
processed, regardless of the actual location of this option on the
command line.

−H

Print help and usage
string.

−Oop_sys_name

Override the compiled-in name of the
operating system. Useful when the built in name is not desired for
backward compatibility reasons. For example, if the build in name
is ‘‘sunos5’’, you can override it to
‘‘sos5’’ and use older maps which were
written with the latter in mind.

−S

Do not lock the running
executable pages of amd into memory. To improve
amd’s performance, systems that support the plock(3)
call, could lock the amd process into memory. This way there
is less chance the operating system will schedule, page out, and
swap the amd process as needed. This tends to improve
amd’s performance, at the cost of reserving the memory
used by the amd process (making it unavailable for other
processes). If this behavior is not desired, use the
−S option.

−Ttag

Specify a tag to use
with amd.conf(5). All Map entries tagged with tag will be
processed. Map entries that are not tagged are always processed.
Map entries that are tagged with a tag other than tag will
not be processed.

FILES
/.amd_mnt

directory under which file systems are
dynamically mounted

/etc/amd.conf

default configuration file

CAVEATS

Some care may be required when creating
a mount map.

Symbolic links on an NFS
file system can be incredibly inefficient. In most implementations
of NFS, their interpolations are not cached by the kernel and each
time a symbolic link is encountered during a lookuppn
translation it costs an RPC call to the NFS server. A large
improvement in real-time performance could be gained by adding a
cache somewhere. Replacing symlink(2) with a suitable incarnation
of the auto-mounter results in a large real-time speedup, but also
causes a large number of process context switches.

A weird imagination is
most useful to gain full advantage of all the features.