nmbd is a server that understands and can reply to NetBIOS over IP
name service requests, like those produced by SMB/CIFS clients such as
Windows 95/98/ME, Windows NT, Windows 2000, Windows XP and LanManager
clients. It also participates in the browsing protocols which make up the
Windows "Network Neighborhood" view.

SMB/CIFS clients, when they start up, may wish to locate an
SMB/CIFS server. That is, they wish to know what IP number a specified host
is using.

Amongst other services, nmbd will listen for such requests, and if
its own NetBIOS name is specified it will respond with the IP number of the
host it is running on. Its "own NetBIOS name" is by default the
primary DNS name of the host it is running on, but this can be overridden by
the netbios name in smb.conf. Thus nmbd will reply to broadcast
queries for its own name(s). Additional names for nmbd to respond on can be
set via parameters in the smb.conf(5) configuration file.

nmbd can also be used as a WINS (Windows Internet Name Server)
server. What this basically means is that it will act as a WINS database
server, creating a database from name registration requests that it receives
and replying to queries from clients for these names.

In addition, nmbd can act as a WINS proxy, relaying broadcast
queries from clients that do not understand how to talk the WINS protocol to
a WINS server.

If specified, this parameter causes nmbd to operate as a
daemon. That is, it detaches itself and runs in the background, fielding
requests on the appropriate port. By default, nmbd will operate as a daemon if
launched from a command shell. nmbd can also be operated from the inetd
meta-daemon, although this is not recommended.

-F|--foreground

If specified, this parameter causes the main nmbd process
to not daemonize, i.e. double-fork and disassociate with the terminal. Child
processes are still created as normal to service each connection request, but
the main process does not exit. This operation mode is suitable for running
nmbd under process supervisors such as supervise and svscan from Daniel J.
Bernstein's daemontools package, or the AIX process monitor.

-S|--log-stdout

If specified, this parameter causes nmbd to log to
standard output rather than a file.

-i|--interactive

If this parameter is specified it causes the server to
run "interactively", not as a daemon, even if the server is executed
on the command line of a shell. Setting this parameter negates the implicit
daemon mode when run from the command line. nmbd also logs to standard output,
as if the -S parameter had been given.

-?|--help

Print a summary of command line options.

--usage

Display brief usage message.

-H|--hosts <filename>

NetBIOS lmhosts file. The lmhosts file is a list of
NetBIOS names to IP addresses that is loaded by the nmbd server and used via
the name resolution mechanism name resolve order described in
smb.conf(5) to resolve any NetBIOS name queries needed by the server.
Note that the contents of this file are NOT used by nmbd to answer any
name queries. Adding a line to this file affects name NetBIOS resolution from
this host ONLY.

The default path to this file is compiled into Samba as part of
the build process. Common defaults are /usr/local/samba/lib/lmhosts,
/usr/samba/lib/lmhosts or /etc/samba/lmhosts. See the lmhosts(5) man
page for details on the contents of this file.

-d|--debuglevel=level

level is an integer from 0 to 10. The default
value if this parameter is not specified is 0.

The higher this value, the more detail will be logged to the log
files about the activities of the server. At level 0, only critical errors
and serious warnings will be logged. Level 1 is a reasonable level for
day-to-day running - it generates a small amount of information about
operations carried out.

Levels above 1 will generate considerable amounts of log data, and
should only be used when investigating a problem. Levels above 3 are
designed for use only by developers and generate HUGE amounts of log data,
most of which is extremely cryptic.

Note that specifying this parameter here will override the log
level parameter in the smb.conf file.

-V|--version

Prints the program version number.

-s|--configfile=<configuration file>

The file specified contains the configuration details
required by the server. The information in this file includes server-specific
information such as what printcap file to use, as well as descriptions of all
the services that the server is to provide. See smb.conf for more information.
The default configuration file name is determined at compile time.

-l|--log-basename=logdirectory

Base directory name for log/debug files. The extension
".progname" will be appended (e.g. log.smbclient, log.smbd,
etc...). The log file is never removed by the client.

--option=<name>=<value>

Set the smb.conf(5) option
"<name>" to value "<value>" from the command
line. This overrides compiled-in defaults and options read from the
configuration file.

-p|--port <UDP port number>

UDP port number is a positive integer value. This option
changes the default UDP port number (normally 137) that nmbd responds to name
queries on. Don't use this option unless you are an expert, in which case you
won't need help!

If the server is to be run by the inetd meta-daemon, this
file must contain suitable startup information for the meta-daemon.

/etc/rc

or whatever initialization script your system uses).

If running the server as a daemon at startup, this file will need
to contain an appropriate startup sequence for the server.

/etc/services

If running the server via the meta-daemon inetd, this
file must contain a mapping of service name (e.g., netbios-ssn) to service
port (e.g., 139) and protocol type (e.g., tcp).

/usr/local/samba/lib/smb.conf

This is the default location of the smb.conf(5)
server configuration file. Other common places that systems install this file
are /usr/samba/lib/smb.conf and /etc/samba/smb.conf.

When run as a WINS server (see the wins support parameter
in the smb.conf(5) man page), nmbd will store the WINS database in
the file wins.dat in the var/locks directory configured under wherever Samba
was configured to install itself.

If nmbd is acting as a browse master (see the local
master parameter in the smb.conf(5) man page, nmbd will store the
browsing database in the file browse.dat in the var/locks directory
configured under wherever Samba was configured to install itself.

To shut down an nmbd process it is recommended that SIGKILL (-9) NOT be
used, except as a last resort, as this may leave the name database in an
inconsistent state. The correct way to terminate nmbd is to send it a SIGTERM
(-15) signal and wait for it to die on its own.

nmbd will accept SIGHUP, which will cause it to dump out its
namelists into the file namelist.debug in the /usr/local/samba/var/locks
directory (or the var/locks directory configured under wherever Samba was
configured to install itself). This will also cause nmbd to dump out its
server database in the log.nmb file.

The debug log level of nmbd may be raised or lowered using
smbcontrol(1) (SIGUSR[1|2] signals are no longer used since Samba
2.2). This is to allow transient problems to be diagnosed, whilst still
running at a normally low log level.