Running Firebird on Linux/UNIX - Firebird


The default installation directory is / opt/ firebird. In the / bin directory is the Firebird server binary fbserver (ibserver for Firebird 1.0.x), which runs as a daemon process on Linux/UNIX. It is started automatically at the end of an RPM or script installation and whenever the host server is rebooted, by running the daemon script firebird residing in / etc/ rc.d/ init.d (or / etc/ init.d on SuSE), which calls the command-line Firebird Manager utility, fbmgr.bin. Firebird Manager can be used from a shell to start and stop the process manually.

Starting the Server

If you have to start the Firebird server manually for some reason, log in as root or as the firebird user. Take care about which account you use when starting fbserver because, once it has been started, all of the objects created belong to that account. If another user later starts the process using one of the other special user accounts, those objects will be inaccessible.

It is strongly recommended that you create a system user named “firebird” and run the Firebird server process under that account.

To start the process, execute the following command from a shell:

./fbmgr.bin -start –forever

For Firebird versions before 1.5, use this command:

./ibmgr -start –forever

The –forever switch causes the Guardian monitor process to start. Under the Guardian, the fbserver process will be restarted, should it terminate abnormally for some reason.

To start the server without the Guardian, enter

./fbmgr.bin -start –once

For Firebird versions before 1.5, use this:

./ibmgr -start –once

The –once switch makes it so that, if the server crashes, it stays down until manually restarted.

Stopping the Server

For safety, if possible, ensure that all attachments to databases have been disconnected before you stop the server.

The –shut switch rolls back all current transactions and shuts down the server immediately.

You do not need to be logged in as root to stop the Firebird server with fbmgr, but you do need SYSDBA authority. Execute the following command:

./fbmgr.bin -shut -password <SYSDBA password

Use this command for pre-1.5 versions:

./ibmgr.bin -shut -password <SYSDBA password>

Controlled Shutdown

On this platform, Firebird does not provide a utility for counting users connected to a database on the Superserver. If you need to allow clients an interval to complete work and detach gracefully, shut down individual databases using the gfix tool with –shut and one of a range of available arguments to control detachment. See the section “Shutting Down a Database” in Chapter Housekeeping Tool (gfix).

Other fbmgr Commands


From the command shell:

./fbmgr.bin -command [-option [parameter] ...]

Alternatively, you can start an interactive fbmgr or ibmgr shell session (i.e., go into prompt mode). Type

./fbmgr <press Return/Enter>

to bring up the following prompt:


In prompt mode, the syntax for commands is

FBMGR> command [-option [parameter] ...]

For example, you can start the server in either of the following ways. From the command shell:

./fbmgr -start -password password

In prompt mode:

FBMGR> start -password password

fbmgr Switches

Table presents a summary of the switches available for fbmgr and ibmgr in either shell or prompt mode.

Switches for fbmgr/ibmgr

Switches for fbmgr/ibmgr

Classic Server

Firebird Classic server uses the xinetd or inetd process to handle incoming requests. (The process it uses depends on which one is in your Linux version.) There is no need to start the server explicitly. The xinetd or inetd process runs automatically and, when it accepts a request from a Firebird client to attach, it forks off a process named fb _inet _server for that client.

How the Server Listens for Connection Requests

If Firebird Classic server was installed using a scripted or RPM installer, a startup configuration file for fb _inet _server, named firebird, should have been added to the services that [x]inetd knows about. On most Linux distributions, the location of this file is the directory /etc/xinetd.d. To have [x]inetd “listen” for connection requests from clients to your Firebird Classic server, the firebird script must be in this directory when the [x]inetd process starts.


Stopping and Starting [x]inetd and Its Services

The [x]inetd daemon is itself a service that manages on-demand services like the Firebird Classic daemon. Stopping [x]inetd will cause each of the processes it manages to stop also. Starting or restarting it will cause it to resume listening for requests to start any of its managed processes.

If all of the services in the ../rc.d root are safe to shut down, log in as root and stop x[inetd] with the following shell command:

# service xinetd stop

or this command, as appropriate:

# service inetd stop

If x[inetd] has not been configured to restart automatically when shut down, restart it with this:

# service xinetd restart

Stopping a Firebird Process

If you need stop a runaway Firebird process, in Classic server you can do it. Find the offending process by running the top command from a shell. This utility displays a list of the most CPU-intensive running processes and updates it constantly. Any fb _inet _server instances with extraordinary resource usage should appear in this list.

Get the process ID (PID) of the offending fb_inet_server process from the leftmost column of the display. You can use this PID with the kill command to send a signal to an errant process. For example, for a PID of 12345, you can attempt a controlled shutdown with

# kill 12345

If the process remains visible in the top display, you can attempt a forced shutdown with

# kill -9 12345

All rights reserved © 2020 Wisdom IT Services India Pvt. Ltd Protection Status

Firebird Topics