FBSVCMGR(1)

πŸ’– FBSVCMGR(1) πŸ’–

okay bestie, grab your iced coffee because we're diving into fbsvcmgr, the little icon from the Firebird docs. this is section 1 of the manual, she's serving utility energy, and she's lowkey the only way to talk to the services API from a plain text terminal. let's go πŸ’…


✨ NAME ✨

fbsvcmgr β€” access services API of Firebird


πŸŽ€ SYNOPSYS πŸŽ€

fbsvcmgr service_mgr parameter...
fbsvcmgr host:service_mgr parameter...

🌸 DESCRIPTION 🌸

ngl, here's the lore: Firebird (and interbase 6 and everything before it, fr fr) never had a way to reach the services API straight from the command line. The only exceptions were the -service switch on gbak(1), and the fact that gsec(1) has gone full services-API since version 2.0. So if you wanted to actually use services, you had two options: fire up some third-party GUI, or write your own program in C or whatever language you vibe with. 😭

And like, a GUI is usually fine when you're sitting at the local machine or something on your LAN. But the second you're SSH'd into some remote unix server over a text-only connection, using services becomes basically impossible. And that is genuinely a problem sometimes. πŸ’€

Enter fbsvcmgr. She solves this. With her you may use any service implemented by firebird. But beware bestie β€” to use this utility you should already be familiar with the firebird services API. fbsvcmgr does NOT emulate traditional utilities' switches. She is just a frontend to the services API, periodt.

The first required parameter of the command line is the services manager you want to connect to. Local connection? Just say service_mgr. Remote machine? You need something like hostname:service_mgr. πŸ¦‹

When required, additional service parameter blocks (SPB), including any values, follow. Any of them may (or may not) be prefixed with a single - (minus) sign, purely for clarity. For long command lines β€” which are super typical for fbsvcmgr β€” using - makes the command line way better human-readable, and has no other effects whatsoever. It's just vibes. ✨

Compare, bestie:

 fbsvcmgr service_mgr user sysdba password \
 masterke action_db_stats \
 dbname employee sts_hdr_pages

and

 fbsvcmgr service_mgr -user sysdba -password \
 masterke -action_db_stats -dbname \
 employee -sts_hdr_pages

Same thing. One's just cuter to read. πŸŽ€

🧚 syntax of the SPB parameters

The syntax of service parameter blocks, as understood by fbsvcmgr, almost exactly matches the one you may see in the ibase.h include file or in the Borland InterBase 6.0 API documentation. But to save typing and make the command line a bit shorter, a slightly abbreviated form is used. πŸ‘‘

All SPB parameters have one of two forms: isc_spb_VALUE or isc_VALUE1_svc_VALUE2. So accordingly, in the first case you should type simply VALUE, and for the second β€” VALUE1_VALUE2. For example:

    present in ibase.h          becomes
    -------------------------   -----------------
    isc_spb_dbname              dbname
    isc_action_svc_backup       action_backup
    isc_spb_sec_username        sec_username
    isc_info_svc_get_env_lock   info_get_env_lock

and so on and so on. 🫢 As an exception, isc_spb_user_name may be specified as either user_name or simply user.

The full description of all SPB parameters can be found in the InterBase 6.0 beta documentation. It is some 40 pages long, so it is not duplicated here β€” a girl has to draw the line somewhere. 😭 There are a couple of differences, though, which are described below. Another reference is the ibase.h file distributed by the Firebird project.

πŸ”₯ multiple actions in single request

Using fbsvcmgr you may perform a single action (and get results of its execution when available) or get multiple information items from the services manager. For example:

    fbsvcmgr service_mgr -user sysdba -password masterke -action_display_user

will list all users of local firebird server:

    SYSDBA            Sql Server Administrator      0    0
    QA_USER1                                        0    0
    QA_USER2                                        0    0
    QA_USER3                                        0    0
    QA_USER4                                        0    0
    QA_USER5                                        0    0
    GUEST                                           0    0
    SHUT1                                           0    0
    SHUT2                                           0    0
    QATEST                                          0    0

And:

    fbsvcmgr service_mgr -user sysdba -password masterke \
    -info_server_version -info_implementation

will report both server version and its implementation:

    Server version: LI-T2.1.0.15740 Firebird 2.1 Alpha 1
    Server implementation: Firebird/linux AMD64

But attempt to mix all of this in a single command line:

    fbsvcmgr service_mgr -user sysdba -password masterke \
    -action_display_user -info_server_version -info_implementation

raises an error:

    Unknown switch "-info_server_version"

so like, read the room. pick a lane. 🚫

πŸ™ˆ Buggy documentation

Some parameters have a buggy form in the Borland beta documentation. When in trouble, consult ibase.h first for the correct form.

isc_spb_rpr_list_limbo_trans was forgotten in the Borland beta documentation, but present in fbsvcmgr. she said "not me being left out" πŸ’…

🚫 No licensing stuff

Everything concerning licensing was removed from interbase 6.0 and therefore not supported here. bye πŸ‘‹

🚫 No access to config file

Config file view/modification is not supported in firebird since 1.5 and therefore is not implemented here. we don't do that anymore ✨

⭐ Items added in firebird 2.1

  • trusted_auth β€” (Windows-only) Forces use of windows trusted authentication. πŸͺŸ
  • dbname β€” (Only for actions related to security). It is equivalent to the -database switch of the gsec(1) utility. Note that in gsec(1) this switch is mostly used to specify the remote server you want to administer. In fbsvcmgr the name of the server is already given in the services manager name (first parameter), therefore this parameter in most cases is not needed. lowkey redundant, but she's there 🫢

⭐ Items added in firebird 2.5

  • bkp_no_triggers β€” specify it to avoid executing database-wide triggers. πŸŽ€

πŸ‘‘ AUTHOR πŸ‘‘

Alex Peshkov, "peshkoff at mail.ru"

This manual page was written by Damyan Ivanov dmn@debian.org for the Debian project. Permission is granted to use this document, with or without modifications, provided that this notice is retained. If we meet some day, and you think this stuff is worth it, you can buy me a beer in return. πŸ“


and that's the whole page, bestie, no notes πŸ’– this icon is from Firebird 4.0, dated 2026-06-28, and she ate fr fr. slay, go manage some services πŸŒˆβœ¨πŸ‘‘

πŸ“¦ where this page comes from