Skip to content

Installation of Floating License Server

Requirements

RLM has no minimum specification for CPU or RAM; virtually any machine will work, provided it is a server that is continuously and reliably accessible. The server is available for Windows x64 systems and Linux / Unix x64 systems. We recommend a 64 bit Windows Server operating system.

Download

Please download the RLM license server provided by LieberLieber Software.

RLM license server Windows Version 15

RLM license server Linux Version 15

RLM license Administraion

Quick installation guide

  • Unzip to a folder of choice
  • Copy the provided license file to the same folder (you can rename the file, but don't change the file extension)
  • Run rlm.exe (Windows) or ./rlm (Linux) depending on your operating system

The License Server

The license server consists of at least two processes

  • The generic server, called rlm

  • At least one ISV server, named isv

The rlm server is provided by Reprise Software, and is completely generic. The ISV server is configured to contain license key validation that is ISV-specific. The ISV server configuration is contained in a platform-independent settings file, rather than a different binary built for each platform.

The rlm server handles requests from clients and directs them to the appropriate ISV server. In addition, the rlm server watches for failures in ISV servers and restarts them when appropriate. The rlm server also provides status to the various utilities, when appropriate.

The rlm server initiates a reread of the license files (for itself and any ISV servers) at midnight every night.

The rlm server is delivered with an embedded Web Server to perform normal administration tasks.

The ISV server consists of either a platform-specific binary file (isvname.exe on Windows, or isvname on Unix), or a platform-independent settings file (isvname.set on either Windows or Unix).

Using RLM across a Firewall

Sometimes it is desirable for the RLM server to be behind a firewall. RLM supports this, but there is a small amount of configuration that you will have to do to use RLM across a firewall.

If you have a firewall installed on the server node which is not allowing your application to access either the rlm port, or the port of the ISV server you must first configure your firewall to allow access to both the main rlm port, as well as the ISV server port. To do this, perform the following steps:

  • In your license file, look at the SERVER (or HOST) and ISV lines: * SERVER server-hostname server-hostid main-rlm-server-port# (Note: the keyword HOST is equivalent to SERVER) * ISV isvname

  • Add the desired port # to the ISV line as follows:

        ISV   isvname   port=isv-port#
    
  • Next, configure your firewall to allow access to both isv-port# and main-rlm-server-port#

  • Make sure that the license file is updated on the server node, and that the client nodes know how to find rlm – either with a license file with the SERVER line above, or by setting the RLM_LICENSE environment variable to main-rlm-server-port#@server-hostname

  • Re-start rlm – you must restart RLM in order for any port changes to take effect. Restarting the ISV server via the web interface or rlmreread does not restart RLM.

RLM Embedded Web Server

The rlm server contains an embedded Web Server which can be used to perform most administration of the rlm server itself. The web server contains the functionality of all the rlmXXXX utilities except rlmhostid. The web server allows you to retrieve server and license status (similar to rlmstat), cause the servers to reread the license files (rlmreread), switch debug (rlmswitch) or report log (rlmswitchr) files, move the current report log file to a new name (rlmnewlog), or shut down the license servers (rlmdown). Using this web-based interface, you can administer the license servers from any platform, and you do not need to install the rlm utilities - you only need a web browser.

The web server is started automatically on port 5054 when rlm is started. To use the web server, simply point your browser to: http://ServerHostName:5054 and select the operation you would like to perform. You will be prompted for any required information.

If you would like to run the web server on a different port, specify the -ws NNNNN command-line argument when starting rlm, where NNNNN is the desired port.

The RLM web server is 100% self-contained in the rlm binary; no additional html files are required for operation.

For a description of the RLM web server UI, see the RLM License Administration Manual.

NOTE: As of license server version 14.1 you must login in order to use the web interface. The default username is admin and the default password is admin. You can change the password after logging in using the appropriate menu item. The default password must be set otherwise the rlm will exit after 10 minutes.

Adding New Users

To add a new user:

  1. Open rlm.pw (located in the RLM binary directory)

  2. Add a new user with blank password and desired permissions: "johndoe::status"

  3. Log in to web server as this new user and click "Change Password" to set a password for the user

NOTE: If there are any users without passwords and/or the amdin password is still the default, for longer than 10 minutes the server will shut down automatically.

rlm startup options

The rlm command is: % rlm [-c license_file] [-dat] [-dlog [+]logfile] [-info] [-l] [-noudp] [-nows | -ws port] [-x [rlmdown|rlmremove]] [-v] [-install_service] [-service_name sname] [-user username -password password] [-isv_startup_delay seconds]

The -c license_file option specifies which license file to use. This option overrides the setting of the RLM_LICENSE environment variable. The license_file parameter can be a directory containing license files, all of which will be processed.

The -dat option specifies that license files should have the extension ".dat", rather than ".lic". If -dat is specified, the rlm server will search for all files ending in ".dat" instead of ".lic" as documented elsewhere.

The -dlog logfile specifies the pathname for the server debug log. If logfile is preceded by the '+' character, the logfile will be appended, otherwise it is overwritten.

The -info switch causes RLM to print information about all copies of rlm that are running on this computer, including copies which have run in the prior 24 hours, then exit.

The *-l switch causes rlm to only process command-line utilities from the local host (v12.1+)

The -noudp switch causes rlm to not listen on it's UDP port, so that client broadcasts do not work.

The -nows and -ws port options control the operation of the embedded Web Server. The -nows option instructs the rlm server to not start the embedded web server. The -ws port option instructs the rlm server to use port as the port number for the web server.

The -x [rlmdown | rlmremove] option controls whether the rlmdown and/or rlmremove commands will be processed by the server. Specifying only -x will disable both commands. Specifying either command name after the -x will disable just that command.

The -v option causes RLM to print it's version and exit.

The -install_service and -service_name sname options are used to run the rlm server as a service under windows. See the description of running the rlm server as a service below.

The -isv_startup_delay seconds option specifies that when running as a Windows service, rlm should delay seconds seconds before starting up the ISV servers. If not specified, there is no delay. This is useful if a license file specifies a hostid of type rlmid1 (hardware keys), the server is started at system boot time, and the key driver is not yet started at the time the ISV server needs to read it.

The -user and -password options: 1. Windows expects the username argument to be \. To use the local system domain, specify ".\", eg ".\joe". Without the ".\" you will get a service creation failure.

  1. In order to run a service, the account specified by the -user argument must have the "Log on as a Service" property set. For details on how to set that property on an account, see this blog: http://blogs.msdn.com/b/ablock/archive/2008/09/18/setting-the-properties-the-log-on-as-a-service-and-allow-log-on-locally.aspx

These options can appear in any order on the command line.

Note that if the rlm server cannot bind the web server port (5054 by default), it will exit.

Running the rlm server as a service on Windows

On Microsoft Windows servers, you may want to install and run the rlm server as a Windows service process. A service process can start automatically at boot time and remain running as long as the system is up, regardless of user logins and logouts.

You can install RLM as a service only in a command window. Once installed as a service, it remains installed until it is explicitly deleted as a service. Installing RLM as a service does not start RLM; services are started via the Windows Services control panel, and at boot time.

To install RLM as a service in a command window, use the rlm program itself (in a command window), with special arguments: rlm -install_service -dlog [+]logfile [-service_name sname] <rlm runtime args>

where: * logfile is the pathname for the server debug log. This parameter is required. If preceded by the '+' character, the logfile will be appended, rather than created. * sname is an optional name for the installed service. If not specified, sname defaults to "rlm". If sname contains embedded whitespace, it must be enclosed in double quotes. * are any other command line arguments to be passed to rlm when it is started.

Example with a reference to a folder where the license file is located rlm -install_service -service_name rlm-xyz -dlog c:\logs\server.log -c c:\licenses\´

Example pointing directly to the license file: rlm -install_service -service_name rlm-xyz -dlog c:\logs\server.log -c c:\licenses\xyz.lic´

This installs rlm as a service under the name "rlm-xyz". When started via the Services control panel or at boot time, rlm will be passed the "-c c:\licenses\xyz.lic" args, and it will write its debuglog information to the file c:\logs\server.log

Installed RLM services are also deleted with the rlm program. Services must be stopped via the service control panel before they can be deleted. Note that deleting a service deletes it from the Windows service database; it does not delete the rlm executable or associated license file(s): rlm -delete_service [-service_name sname]

where: * sname is an optional name for the installed service. If not specified, service_name defaults to "rlm". If service_name contains embedded whitespace, it must be enclosed in double quotes.

Notes: * It is desirable to use the -c command line argument with RLM when installed as a service. Use of environment variables with Windows services is undesirable, as the environment passed to started services is the one in effect at boot time. * On systems which run RLM license servers, it is a good idea to install each ISV's instance of rlm with a service_name argument which reflects the ISV or ISVs whose licenses are being served by that instance of rlm. For example, if a system ran two instances of RLM as services, where the first instance served license for ISVs "Blue" and "Green", and the second instance served license for ISV "Yellow", they might be installed as "rlm Blue-Green" and "rlm Yellow", respectively. * Because the Service Controller on Windows invokes services under a special user account in a special default directory, it is necessary to use full paths: * for the -c argument on the rlm command line * in ISV daemon paths in the license file * in options file paths in the license file * in debug log paths in the ISV options file * in report log paths in the ISV options file * for the -dlog debug_log argument on the command line * Beginning in RLM v8.0, when running as service, rlm now changes its working directory to the directory where rlm.exe is installed. This is so that log files will be written there instead of in c:\windows\system32 as in prior versions (if log file paths are not specified as absolute paths.) rlm.exe checks to make sure that it can write to that directory before changing its working directory. If it can't be written, rlm leaves its working directory as c:\windows\system32. * When running rlm as a service, it is strongly recommended that you specify a debug log location for each ISV server. This is done in the ISV Options File for each ISV server, using the DEBUGLOG keyword. If no location is specified for the debug log, the ISV server's debug information is lost when running as a service. * Starting in v9.4 when you install RLM as a service, it starts and then stops the installed service. This is so that if there are any firewall issues - ports blocked that rlm needs to use - the warnings come at service installation time rather than when rlm is started for the first time.

Starting the rlm server at system boot time on Linux / Unix systems

On most Unix systems, system services are started at boot time, usually via startup scripts located in /etc/rc.. For example, on Solaris, the startup script might be placed in /etc/rc2.d/S98rlm. On Linux systems, the script could be located in /etc/init.d/rlm, with a link to /etc/rc5.d/S98rlm. Note that you must install this startup script as root.

The startup script should su to a different user so that the rlm servers are not running as root.

The following is an example of a script which would start rlm at boot time on Unix systems. Modify the first 5 variables for the target system.

#!/bin/sh
#
# rlm Start/Stop rlm
#

#----------------------------------------------------------------
#----------------------------------------------------------------
#----------------------------------------------------------------
# NOTE:
# NOTE: Configure these 5 variables for your system
# NOTE:

# Set rlmuser to the user under which rlm will run
rlmuser=bobm

# Set rlmdir to the directory where the rlm binary is found
rlmdir=/home/bobm/rlm/dev/rlm

# Set rlmdir to the directory where the rlmdown binary is found
rlmdowndir=$rlmdir

# Set licfile to the path to the license file
licfile=$rlmdir/x.lic

# Set debuglog to the path to the debug log
debuglog=+$rlmdir/rlm.dl

#----------------------------------------------------------------
#----------------------------------------------------------------
#----------------------------------------------------------------

start() {
echo $debuglog
        su - $rlmuser -c "$rlmdir/rlm -c $licfile -dlog $debuglog &"
}
stop() {
        su - $rlmuser -c "$rlmdowndir/rlmdown RLM -q"
}
case "$1" in
   start)
      start
      ;;
   stop)
      stop
      ;;
   restart)
      stop
      sleep 2
      start
      ;;
   *)
      echo $"Usage: $0 {start|stop|restart}"
      exit 1
esac

exit 0