How do I set up the Imagineer License Server on Linux with systemd?

Tags: Mocha, Installation & Licensing

NOTE: This document only applies to the legacy Imagineer License Server that
serves the FlexLM licenses provided with Mocha 5.6 and earlier. Mocha 2019 and
later use the GenArts license server, which is not configured in this way.

Introduction

systemd is the new mechanism for managing startup scripts and services on
modern Linux distributions, replacing the previous init scripts and Upstart (on
Ubuntu). The following distributions use systemd by default, although support
for old-style init scripts is generally retained as much as possible.

  • RHEL/CentOS version 7.0 and newer
  • Fedora 15 and newer
  • Ubuntu 15.04 and newer
  • Debian 8 and newer

Package installation

First, install the LicenseManager package on the server. On a CentOS, RHEL or
Fedora system you should be able to install the RPM package directly, while on
Ubuntu or Debian you will need to convert the RPM package to the DEB format
using alien (do not use the --scripts parameter, since the RPM
installation scripts may not be compatible).

Dependency installation

Test that the license daemon can actually run on the system by invoking it
manually from the command line (ignoring any errors about missing licenses).

$ /opt/isl/LicenseManagerV1/bin/isllmgrd -z

If the license daemon runs (and possibly immediately exits), continue to the
next section. If there is an error message “No such file or directory”, this
means that the necessary LSB (Linux Standard Base) package is not installed on
the system.

On Ubuntu, the command to install this package would be

$ sudo apt-get install lsb

Whereas on CentOS the command is:

$ sudo yum install redhat-lsb

Other distributions may use different names for their LSB packages, so you may
need to search for the appropriate package name to install.

Create the daemon user and group

This section is only needed when using a converted DEB package on Ubuntu or
Debian. If you installed the RPM directly (e.g. on CentOS or RHEL), skip this
section.

For security reasons, the license management daemon should not run with root
privileges, but as a dedicated isllmgrd user with limited access to the
system. If the LicenseManager was installed via a converted DEB package, the
RPM script to create the necessary system user will not have been executed.
Therefore it needs to be run manually with the following commands:

$ sudo groupadd -r isllmgrd
$ sudo useradd -r -g isllmgrd -s /sbin/nologin -c "License Manager user account" isllmgrd

Install the systemd service file

The systemd service file tells systemd how to start and stop the LicenseManager
daemon, and replaces the previous isllmgrd init script which is no longer
used and should be removed.

  1. Download the isllmgrd.service file from
    here.
  2. Install the service file into the location: /etc/systemd/system
  3. Remove the /etc/init.d/isllmgrd script, to avoid confusion and possible
    conflict with the old-style init system.

At this point it should be possible to start and stop the license daemon with
systemd, and to obtain its log output and status.

Administering the daemon with systemd

Now that the daemon is managed by systemd instead of an init script,
there are some changes in the commands used to manage the service.

To start the service, use:

$ sudo systemctl start isllmgrd

To stop the service, use:

$ sudo systemctl stop isllmgrd

To obtain the current status, use:

$ sudo systemctl status isllmgrd

Note that the status output is far more comprehensive than with the init
script, giving the PID, the full command-lines of the main process and its
child process, and various other information.

To obtain the log output, another systemd command is used. There is no need
to look for the old /var/log/isllmgrd.log file, since this is no longer used
and will not be created if it is not already present.

This command dumps the log output to the console:

$ sudo journalctl -u isllmgrd

If the user needs to send a copy of the log to support, it is better to have
them redirect the output to a file rather than copy-paste from a terminal
window, which may cut off long lines.

$ sudo journalctl -u isllmgrd > /tmp/isllmgrd.txt

The above command will save the log into /tmp/isllmgrd.txt which can then be
sent to support as an email attachment.


PRODUCT UPDATES & SPECIAL OFFERS

Join our email newsletter and keep up to date