Zebra - User's Guide and Reference
Prev |  | Next

# Chapter 7. The Z39.50 Server

# Running the Z39.50 Server (zebrasrv)

Syntax

        zebrasrv [options] [listener-address ...]

Options

-a `APDU file`

  Specify a file for dumping PDUs (for diagnostic purposes). The special name "-" sends output to `stderr`.

-c `config-file`

  Read configuration information from `config-file`. The default configuration is `./zebra.cfg`.

-S

  Don't fork on connection requests. This can be useful for symbolic-level debugging. The server can only accept a single connection in this mode.

-z

  Use the Z39.50 protocol. Currently the only protocol supported. The option is retained for historical reasons, and for future extensions.

-l `logfile`

  Specify an output file for the diagnostic messages. The default is to write this information to `stderr`.

-v `log-level`

  The log level. Use a comma-separated list of members of the set {fatal,debug,warn,log,all,none}.

-u `username`

  Set user ID. Sets the real UID of the server process to that of the given `username`. It's useful if you aren't comfortable with having the server run as root, but you need to start it as such to bind a privileged port.

-w `working-directory`

  Change working directory.

-i

  Run under the Internet superserver, `inetd`. Make sure you use the logfile option `-l` in conjunction with this mode and specify the `-l` option before any other options.

-t `timeout`

  Set the idle session timeout (default 60 minutes).

-k `kilobytes`

  Set the (approximate) maximum size of present response messages. Default is 1024 KB (1 MB).

A `listener-address` consists of an optional transport mode followed by a colon (:) followed by a listener address. The transport mode is either `ssl` or `tcp` (default).

For TCP, an address has the form

        hostname | IP-number [: portnumber]

The port number defaults to 210 (standard Z39.50 port) for privileged users (root), and 9999 for normal users.

Examples

        tcp:@

        ssl:@:3000

In both cases, the special hostname "@" is mapped to the address INADDR_ANY, which causes the server to listen on any local interface. To start the server listening on the registered port for Z39.50, and to drop root privileges once the ports are bound, execute the server like this (from a root shell):

        zebrasrv -u daemon @

You can replace `daemon` with another user, eg. your own account, or a dedicated IR server account.

The default behavior for `zebrasrv` is to establish a single TCP/IP listener, for the Z39.50 protocol, on port 9999.

Prev | Home | Next
Running the Maintenance Interface (zebraidx) |  | Z39.50 Protocol Support and Behavior