OpenLM Broker installation on Linux/Unix
Install OpenLM Broker on a Linux or Unix license server so that it can query the license managers on that machine and report their usage to OpenLM SLM or to Software License Management Cloud (SLMC). To install on Windows, see OpenLM Broker installation on Windows.
The steps cover distributions that use systemd and distributions that use another init system. For the distributions OpenLM tests, see system requirements.
Before you begin
Check the following before you install:
- Java: a working Java runtime (JRE or JDK) must already be present on the machine: Java 11 or higher, or Java 8. Java 9 and 10 aren't supported. Unlike the Windows installer, the Linux downloads don't include Java.
- One Broker per license server: one Broker can monitor several license managers on its own machine, but each additional license server needs its own Broker. Repeat this page once per server.
- Network access: the Broker must reach the license managers on its machine and the OpenLM SLM it reports to, on port 5015 by default. For SLMC, it needs internet access. If the Broker can reach the internet only through a proxy, see OpenLM Broker connectivity through HTTP proxy server.
- Authorization file: to report to SLMC, or to an OpenLM SLM that uses the Identity Service, have the Broker authorization file (
.json) ready. The section Import an authorization file says where to get it.
Download the Broker
Download the Broker for Linux from the Downloads page. It comes in the following formats, all for x86-64:
- A tar.gz archive that works on every distribution. See Install from the tar.gz archive.
- Native DEB and RPM packages for Debian/Ubuntu and RHEL-family systems. See Install from a DEB or RPM package.
Install from the tar.gz archive
Preliminary steps
-
Extract the archive (OpenLM_Broker_#.#.#.#.tar.gz) to a convenient location. It extracts into a folder named openlm-broker.
-
Open the settings.sh file in your editor of choice. This file holds all the variables required for Broker to operate. The shipped file leaves JAVA_HOME empty, so you must set it to the path of your Java runtime (Java 11 or higher, or Java 8).
The JAVA_HOME path must not end with a trailing slash.
Optionally, edit the BROKERSRVNAMEUSER variable to run the service from an account other than "root". In this case, you must ensure that all the files in the openlm-broker folder have their ownership reassigned to the new user.
Change the BROKERSRVNAME variable when you want to install multiple instances of OpenLM Broker in parallel.
The file as shipped:
#!/usr/bin/env bash# Edit this file and customize service name in order to install multiple Broker services in parallelBROKERSRVNAMEUSER="root"BROKERSRVNAME="openlm_broker_$BROKERSRVNAMEUSER"BROKERSRVNAMEFILE="$BROKERSRVNAME.service"#Change JAVA_HOME to point at installation folder[[ -z "$JAVA_HOME" ]] && JAVA_HOME= -
Save the file and continue with the installation steps that match your Linux distribution.
Install Broker as a service (systemd)
If your Linux version supports systemd, the following steps install OpenLM Broker as a service that starts automatically when the system starts:
-
Install the Broker as a service:
sudo ./broker.sh install -
Check the status of the Broker service:
sudo ./broker.sh status -
Connect the Broker to OpenLM SLM or SLMC and add your license managers, as described in Connect the Broker to OpenLM SLM or SLMC.
Run Broker as a background process (no systemd)
If your Linux version doesn't support systemd, the following steps run OpenLM Broker as a background process instead:
-
Start the Broker process:
sudo ./broker.sh start -
Connect the Broker to OpenLM SLM or SLMC and add your license managers, as described in Connect the Broker to OpenLM SLM or SLMC.
Install from a DEB or RPM package
Instead of the tar.gz archive, you can install the native package for your distribution.
On Debian/Ubuntu systems:
sudo dpkg -i openlm_broker_<version>_amd64.deb
# If dpkg reports missing dependencies, resolve them with:
sudo apt-get install -f
On RHEL-family systems:
sudo rpm -ivh openlm_broker_<version>.x86_64.rpm
A package installation differs from the tar.gz in 3 ways:
- Files go to a fixed location, /opt/broker. Run the configuration scripts from that folder.
- The RPM package sets JAVA_HOME in
settings.shfor you, taking the firstjavaon thePATH. On a machine with more than 1 Java runtime, check afterward that it picked the one you intended. - The package registers and starts the systemd service itself, so you don't run
./broker.sh install.
What remains is to connect the Broker and add your license managers. See Connect the Broker to OpenLM SLM or SLMC.
Connect the Broker to OpenLM SLM or SLMC
A new Broker doesn't yet know which license managers to query or where to send their data. Choose the method that fits the machine:
- On a server without a desktop, use the scripts in the Broker folder: detect.sh for an on-premises OpenLM SLM, auth_import.sh for SLMC or the Identity Service.
- From any browser on your network, use the Broker web UI.
- On a machine with a desktop environment, open the local configuration tool with
sudo ./broker.sh config.
Configuring Broker with detect.sh
The detect.sh script detects the supported license managers running on the machine and adds their ports to the Broker configuration file. Given the address of your OpenLM SLM, it also adds the connection to it.
For proper operation, detect.sh has to be run as root.
The script behaves as follows:
- Running detect.sh when no configuration file exists creates a default configuration file with the license manager ports that it detects as open on the machine.
- Running detect.sh when a configuration file already exists adds any missing port information to that same file. The original is copied into a broker.xml.backup folder beside it, under a timestamped name such as
broker.xml.2026-08-24T153045123, so repeated runs never overwrite an earlier backup.
Command format:
sudo ./detect.sh <fileName.xml> [<port>@]<OpenLM SLM host>
The second parameter is optional. It adds a connection to an on-premises OpenLM SLM at that host, on port 5015 unless you put a different port in front of the host name.
detect.sh works on the file you name and updates it in place. It doesn't merge that file into broker.xml. Because the Broker service always reads broker.xml, running the script against any other name produces a file that has no effect until you rename it or copy it over broker.xml.
For example, to detect the license managers and connect the Broker to the OpenLM SLM at slm.example.com on the default port:
sudo ./detect.sh broker.xml slm.example.com
To use a different port, for example 7016 on an older installation:
sudo ./detect.sh broker.xml 7016@slm.example.com
If the scan finds no ports, run it again with -v to write detailed logging to the Broker log, for example sudo ./detect.sh -v broker.xml.
Restart the Broker afterward so that it reads the new configuration. See Restart the Broker.
Import an authorization file
To connect the Broker to SLMC, or to an on-premises OpenLM SLM that uses the Identity Service, import the Broker authorization file with auth_import.sh. Generate the file first:
- For SLMC, in the Cloud Portal. See Automatic mode.
- For an on-premises OpenLM SLM with the Identity Service, in EasyAdmin. See Adding the OpenLM SLM.
To import it:
-
Copy the authorization
.jsonfile to the folder where OpenLM Broker is installed. -
Import it as root:
sudo ./auth_import.sh <authorization-file>.jsonThe import runs in the background and writes its result to
logs/auth_import_nohup.login the Broker folder, not to the terminal. Check that file for the lineSaving broker.xml. -
Restart the Broker so that it picks up the credentials. See Restart the Broker.
auth_import.sh writes the credentials into every OpenLM SLM connection already in broker.xml, or adds one connection if the file has none. Use it on a Broker that reports to one destination. To make one Broker report to both an on-premises OpenLM SLM and SLMC, add the second connection in the Broker web UI.
Configure the Broker from a browser
The Broker serves a browser interface on port 5090 by default, unless webUIPort is set to off in broker.xml. No desktop environment is needed. Opening it on the license server itself requires no login. From another computer, you need a short-lived token generated on the license server. See OpenLM Broker web UI for remote access and for adding OpenLM SLM connections.
Copy a configuration from another Broker
To configure the same set of ports across many license servers, copy the broker.xml from an already-configured Broker machine and import it with detect.sh. If a broker.xml already exists on the target machine, rename the copied file first:
sudo ./detect.sh brokerAddon.xml
Restart the Broker
Restart the Broker after you change its configuration:
sudo ./broker.sh restart
On a machine without systemd, restart is unavailable. Stop and start the process instead:
sudo ./broker.sh stop
sudo ./broker.sh start
Broker.sh commands
broker.sh accepts the following commands:
| Command name | Description | Requires systemd |
|---|---|---|
| install | Installs OpenLM Broker as a service using "systemctl enable" | Yes |
| uninstall | Deactivates an already installed OpenLM Broker instance from starting as a service | Yes |
| start | Starts the OpenLM Broker service | No |
| stop | Stops the OpenLM Broker service | No |
| restart | Restarts the OpenLM Broker service | Yes |
| status | Displays the current status of the OpenLM Broker service | No |
| config | Opens the local Broker configuration tool | No |
Command format:
sudo ./broker.sh <command>
broker.sh checks for systemd and hands the command to the matching script. On a machine without systemd, the 3 commands marked as requiring systemd are unavailable: rather than acting, broker.sh prints its usage line and exits. Use stop followed by start in place of restart.
Upgrading an existing Broker installation
To upgrade a Broker installed from the tar.gz archive:
- Download the latest version of OpenLM Broker for Unix/Linux from the Downloads page.
- Remove the current Broker installation:
-
If using systemd, uninstall the current Broker service:
sudo ./broker.sh uninstall -
If you aren't using systemd, stop the Broker process:
sudo ./broker.sh stop
-
- Extract the archive (OpenLM_Broker_#.#.#.#.tar.gz) to a convenient location.
- Copy the broker.xml and settings.sh files from the previous Broker installation folder to the new folder, overwriting if required.
- Install the Broker service for the new version from the new openlm-broker folder:
-
If using systemd, install the service:
sudo ./broker.sh install -
If not using systemd, start the process:
sudo ./broker.sh start
-
Afterward, check that the settings and license servers have stayed the same, in the Broker web UI or with sudo ./broker.sh config. Then confirm that the license managers the Broker monitors still appear in the EasyAdmin License Servers widget.
Uninstall the Broker
Removing the Broker deliberately leaves its configuration behind, so that reinstalling later picks up the same setup. Delete the installation folder by hand if you want a clean removal.
Stop the service and remove it from systemd:
sudo ./broker.sh uninstall
This stops the Broker, disables the service, and deletes its systemd unit files. The Broker folder itself, including broker.xml and the logs, stays in place.
On a machine without systemd, uninstall is unavailable. Stop the process instead:
sudo ./broker.sh stop
Connect over HTTPS
When the Broker connects over HTTPS to an OpenLM SLM whose certificate Java doesn't already trust, import the issuing certificate into the keystore of the Java runtime that JAVA_HOME points at. See Trust the certificate (Linux). On Java 8, the keystore is one level deeper than on Java 11 and higher, at $JAVA_HOME/jre/lib/security/cacerts.
Verify the connection
Open the License Servers widget in EasyAdmin. Each license manager the Broker monitors appears there with its status. If a status message points to a problem, see Troubleshoot OpenLM Broker by EasyAdmin user interface messages.
The documentation team might draft this page using a large language model. A technical writer reviews every page and verifies it against the product before publishing it. A human makes the final decision.