License File

The license file contains all site-specific information required by FLEX lm . This information includes:

· Server names and host IDs

· Vendor names and paths to vendor executables

· Feature information

The license file must be accessible to every machine that runs a FLEX lm -licensed application, and each machine designated as a license server. Before you can use the application you must start the license manager daemon ( lmgrd ) using the following syntax:

lmgrd [-c license_file_path] [-t connect_timeout]

-c license_file_path Full pathname to the license file. Only use this option if the license file is not installed in the default location " /usr/local/flexlm/licenses/license.dat ". See Specifying Location of the License File for information about using alternate locations.

connect_timeout Timeout, in seconds, for "connect" calls to other daemons if operating in multi-server mode.

License File Format describes the format of the license file. The section Anatomy of a License File includes sample license files.

Specifying Location of the License File

If your software vendor recommends a specific location for your license file, or if the default is not practical for you, use one of the following two methods to put the license file in another location:

· Set the path when you start lmgrd

· Set the path with an environment variable

When running the application on multiple nodes, you have three options for making your license file available on all the machines:

· Place the license file in a partition which is available (via NFS " ) to all nodes in the network that need the license file.

· Copy the license file to all of the nodes where it is needed.

· Read the license file data from lmgrd , by specifying LM_LICENSE_FILE as " port@host ", where host is the server hostname and port is the port number from the license file.

Note: port@host is only supported in FLEX lm v2.4 or later versions.

Since the vendor daemon keeps track of license usage, and since the license file contains encrypted data to protect it against modification, you may move and copy the license file as much as you want.

Note: If you are running redundant servers, you should have one copy of the license file (as well as copies of lmgrdand the vendor daemons) on each server node. If you do not do this, you lose all the advantages of having redundant servers, since the node holding these files becomes a single point of failure.

Before selecting an option you must install lmgrd (the license manager daemon) and the vendor daemon. Use the /etcdirectory a reasonable location, since the daemons will probably be used at boot time.

Setting the path at startup

To start the license manager daemon ( lmgrd ) become root and execute a command similar to the following.

C shell

If you are using the C shell:

nohup daemon_pathname/lmgrd -c >& \ log_pathname/license.log &

Korn or Bourne shell

If you are using the Korn or Bourne shell:

nohup daemon_pathname/lmgrd -c license_datafile_pathname \ > log_pathname/license.log 2>&1 &

Starting the daemon automatically

To start the lmgrd daemon automatically each time you reboot the license server, add a line similar to the following to either /etc/rc.boot, 
/etc/rc.local, or the appropriate startup file:

nohup daemon_location / lmgrd -c license_file_path > \ log_pathname /license.log 2>&1 &

daemon_location Full pathname to the lmgrd executable.

license_file_path Full pathname to the license file

log_pathname Full pathname to the license log file.

You must reboot your license server to start the daemon.

FLEX lm supports dozens of platforms. Consult your operating system's man pages for specific information about modifying startup files.

Setting the path with an environment variable

Use the environment variable LM_LICENSE_FILE to set the location of the license file. For example in the C shell:

setenv LM_LICENSE_FILE license_file_path

In the Korn and Bourne shells:

LM_LICENSE_FILE = license_file_path

license_file_path Full pathname to the license file.

Note: The "-c" option overrides the setting of the LM_LICENSE_FILE environment variable for lmgrd . See Combining License Files for more information about LM_LICENSE_FILE .

License File Format

The format of the license file is a SERVER line (or lines), followed by one or more DAEMON lines, followed by one or more FEATURE lines.

You can modify four data items in the license file:

· Node names on the SERVER line(s)

· Port numbers on SERVER line(s)

· Pathnames on the DAEMON line(s)

· Options file pathnames on DAEMON line(s)

Note: Everything else is used to compute the encryption code, and should be entered exactly as supplied by your software vendor. All data in the license file is case sensitive, unless otherwise indicated.

In the following sections, options modifiable by the system administrator are underlined.

SERVER lines

The SERVER line specifies the node name and hostid of the license server, and the port number of the license manager daemon ( lmgrd ). Normally a license file has one SERVER line. More than one SERVER line means that you are using redundant servers. For more information about redundant servers, see Selecting Server Nodes . The format of theSERVER line is:

SERVER nodename id [port-number]

nodename String returned by the Unix hostname or on some systems, name -n command.

id String returned by the lmhostid command.

port-number TCP port number to use (optional, but If not specified, then the FLEX lm TCP service must be present in the network services database.)


SERVER enterprise 0122345 1701

DAEMON lines

The DAEMON line specifies the daemon name and path. The format of the DAEMON line is:

DAEMON daemon-name path [options]

daemon-name Name of the vendor daemon used to serve some feature(s) in the file.

path Pathname to the executable for this daemon.

options Full pathname of the end-user specified options file for this daemon. (See Options File ) FLEX lm does not require an options file.


DAEMON mydaemon /usr/local/mydaemon \ /usr/local/options/options.dat

Note: "\" characters are only legal syntax in FLEX lm v3.0 and later. Previous versions required that all lines in the license file fit on one line.


Note: You cannot edit the FEATURE line. Use the FEATURE line exactly as supplied by your vendor.

The FEATURE line specifies the name of the feature to be licensed. A feature can be the name of a program, a program module, or option. Any amount of white space of any type (that is, tabs or spaces) can separate the components of a line. The FEATURE line is as follows:

FEATURE name daemon version expdate nlic code \ "vendor_string" [hostid]

name Name given to the feature by the vendor.

daemon Name of the vendor daemon; also found in the DAEMON line. The specified daemon serves this feature.

version Version of this feature that is supported by this license.

expdate Expiration date, for example, 7-may-1993 (if the year is 0, then the license does not expire).

nlic Number of concurrent licenses for this feature. If the number of users is set to 0, the licenses for this feature are uncounted and no lmgrd is required.

code Encrypted password for this FEATURE line. The start date is encoded into the code; thus identical codes created with different start dates will be different.

"vendor_string" Vendor-defined string, enclosed in double quotes. This string can contain any 64 characters except a quote. (White space is ignored.)

hostid String returned by lmhostid . Used only if the feature is to be bound to a particular host, whether its use is counted or not. (Numeric hostids are case insensitive). See Hostids for FLEXlm-Supported Machines for more information.


FEATURE xyz_app xyzd 2.300 31-dec-1997 20\ 1234567890 "xyz"


Note: You cannot edit FEATURESET line. Use the FEATURESET line exactly as supplied by your vendor.

The FEATURESET line is used to prevent FEATURE lines from being added to or removed from the license file.

The format of the FEATURESET line is as follows:

FEATURESET daemon-name code

daemon-name Name of the vendor daemon used to serve some feature(s) in the file.

code Encryption code for this FEATURESET line. This code encrypts the codes of all features this daemon supports, so no FEATURE lines can be removed, added to, or rearranged in this license file.


FEATURESET xyzd code

Anatomy of a License File

The following example is a license file for single vendor with two features.

SERVER excellent_server 17007ea8 1700
DAEMON xyzd /etc/xyzd
FEATURE xyz_app1 xyzd 1.000 01-jan-1993 10 \ 1EF890030EABF324 ""
FEATURE xyz_app2 xyzd 1.000 01-jan-1993 10 \ 0784561FE98BA073 ""

This license file allows the license server excellent_server with the hostid 17007ea8 to serve 10 floating licenses forxyz_app1 and xyz_app2 to any user on the network.

Parameters of license file fields

This section lists the limits on end-user editable FLEX lm license file parameters:


Length Limit

host names

32 characters (pre-FLEXlmv2.4)

64 characters (FLEX lm v2.4 or later)

license file lines

2048 character, with "\" as a continuation character (v3.0 or later)

user names

20 characters

Types of License Files

License files are created by the software vendor. License files can specify any of the following types of software access:

· Concurrent (floating) usage

· Node-locked

· Concurrent usage on a limited set of hosts

· Mixed node-locked and concurrent usage

Concurrent (floating) usage

Concurrent usage means anyone on the network can use the licensed software, up to the limit specified in the license file. (Also referred to as f loating licensing or n etwork licensing .) Concurrent usage licenses do not have hostids on the individual FEATURE lines. This configuration requires an lmgrd daemon because it is going to count the concurrent usage of the licenses.


An example of a license file that provides concurrent usage is:

SERVER lulu 17001234 1700

DAEMON xyzd /etc/xyzd

FEATURE f1 xyzd 1.00 1-jan-95 2 code1 ""

FEATURE f2 xyzd 1.00 1-jan-95 6 code2 ""

FEATURE f3 xyzd 1.00 1-jan-95 1 code3 ""

This license file allows two copies of feature "f1", six copies of feature "f2", and one copy of feature "f3" to be run anywhere on the network that can access the license server "lulu".


Node-locking means the licensed software can only be used on one node. A node-locked license has a hostid on any FEATURE line that is node-locked to a particular host. There are two types of Node-locked licenses; uncounted and counted.

If the number of users is set to 0, then the licenses are uncounted and unlimited use is permitted on the specified node. This configuration does not require an lmgrd daemon because it is not going to count the concurrent usage of the features.


The following license file allows unlimited usage of feature "f1" on the nodes with host IDs of 12001234 and 1700ab12:

FEATURE f1 xyzd 1.000 1-jan-95 0 code1 "" 12001234

FEATURE f1 xyzd 1.000 1-jan-95 0 code2 "" 1700ab12

If these are the only FEATURE lines in this license file, an lmgrd daemon is no necessary and you should not start one.

The following license file allows three copies of feature "f1" to be run, but only on the node with host ID 1300ab43. (In this case, run the daemons on the same node that runs the software.)

SERVER lulu 1300ab43 1700

DAEMON xyzd /etc/xyzy

FEATURE f1 zyzd 1.00 1-jan-95 3 code "" 1300ab43

Concurrent usage with limited availability

Another solution is a combination of the node-locked solution in Node-locking and the concurrent option described inConcurrent (floating) usage . This provides a fixed number of floating licenses for use on a set of servers only you define when you request your license.

In this configuration, the license file has one node-locked FEATURE line for each node that is to be able to run the software. Generally, the same number of licenses is specified on each FEATURE line. This configuration requires anlmgrd daemon because it counts the concurrent usage.


For example, the following license file allows a total of two simultaneous licenses of a feature called, "f1" on any of the three nodes specified, with the daemons running on the license server "lulu":

SERVER lulu 17001234 1700

DAEMON xyzd /etc/xyzd

FEATURE f1 xyzd 1.00 1-jan-93 2 code1 "" 17001234

FEATURE f1 xyzd 1.00 1-jan-93 2 code2 "" 17002222

FEATURE f1 xyzd 1.00 1-jan-93 2 code3 "" 17003333

Node-locked and concurrent usage

You can mix uncounted node-locked and concurrent usage licenses in the same license file.


The following license file allows unlimited use of feature "f1" to be used on nodes 17001111 and 17002222, while allowing two other copies of feature "f1" to be run anywhere else on the network:

SERVER lulu 17001234 1700

DAEMON xyzd /etc/xyzd

FEATURE f1 xyzd 1.00 1-jan-93 0 code1 "" 17001111

FEATURE f1 xyzd 1.00 1-jan-93 0 code2 "" 17002222

FEATURE f1 xyzd 1.00 1-jan-93 2 code3 ""

This configuration does require an lmgrd daemon because it is going to count the concurrent usage of the two licenses on the third FEATURE line.