Start and Debug lmgrd and xilinxd
- Zach Pfeffer
- Aug 22, 2024
- 3 min read
This post shows how to start and debug lmgrd and xilinxd. It explains commands to start the license manager (lmgrd), look up its port, find its peer (xilinxd), replace the port number in scripts with a command to find it, and log the network traffic to the port.
Index
Start the FlexNet License Manager Daemon (lmgrd)
Start lmgrd and xilinxd with:
~/tools/lin_flm_v11.17.2.0/lnx64.o/lmgrd -z -c- ~/licenses/ -l ~/license_log/license.log &
Run lmgrd from the directory ~/tools/lin_flm_v11.17.2.0/lnx64.o/.
Runs in the foreground because of the -z option, but is sent to the background due to the & (helps debugging)
Uses the license files located in the ~/licenses/ directory.
Log all activities to ~/license_log/license.log; the first place to look when debugging.
Figure Out the License Manager Daemon's (lmgrd) Port
Find the socket associated with the first instance of the lmgrd process:
ss -tulpan | grep $(pgrep -o lmgrd)
Transposed Output
Netid | tcp | tcp |
State | LISTEN | ESTAB |
Recv-Q | 0 | 0 |
Send-Q | 500 | 0 |
Local Address:Port | *:2100 | [::ffff:127.0.0.1]:2100 |
Peer Address:Port | : | [::ffff:127.0.0.1]:59334 |
Process | users:(("xilinxd",pid=19852,fd=0),("lmgrd",pid=19850,fd=0)) | users:(("lmgrd",pid=19850,fd=7)) |
The first data column indicates that the lmgrd and xilinxd processes are listening on port 2100 on all available network interfaces.
The second data column shows that lmgrd has an established connection on port 2100 to another process on the same machine using port 59334.
Look Up The License Manager Daemon's (lmgrd) Peer (xilinxd)
ss -tulpan 'dport = :59334 or sport = :59334'
Transposed Output
Netid | tcp | tcp |
State | ESTAB | ESTAB |
Recv-Q | 0 | 0 |
Send-Q | 0 | 0 |
Local Address:Port | 127.0.0.1:59334 | [::ffff:127.0.0.1]:2100 |
Peer Address:Port | 127.0.0.1:2100 | [::ffff:127.0.0.1]:59334 |
Process | users:(("xilinxd",pid=19852,fd=10)) | users:(("lmgrd",pid=19850,fd=7)) |
The two columns indicate that there is an established TCP connection between two processes (xilinxd and lmgrd) on the same machine:
xilinxd is connected on port 59334 to lmgrd on port 2100.
lmgrd on port 2100 is connected back to xilinxd on port 59334.
Exporting and Looking Up the Port Number
Remove 2100 by changing...
export XILINXD_LICENSE_FILE=2100@localhost
...to:
export XILINXD_LICENSE_FILE=$(pgrep -o lmgrd)@localhost
Log All Traffic to the Port Number
For debugging TCP traffic use:
sudo tcpdump -vvv -XX -i any tcp and port 2100
-vvv:
This flag increases the verbosity of the output. It provides very detailed information about each packet, including headers, flags, and other metadata.
-v: Verbose output.
-vv: More verbose.
-vvv: Even more verbose, showing as much detail as possible.
-XX:
This flag tells tcpdump to display the packet's data in both hexadecimal and ASCII formats.
The first -X flag shows the packet data in both hex and ASCII.
The second -X (together as -XX) also includes the link-layer header in the output.
-i any:
Captures packets on any network interface. This is useful on machines with multiple network interfaces (e.g., Ethernet, Wi-Fi) because it captures from all of them.
tcp:
This tells tcpdump to filter the packets and only capture those that use the TCP protocol.
and port 2100:
Further filters the captured packets to only those that are using TCP and are directed to or from port 2100. This is useful if you know the specific port you want to monitor.
AMD/Xilinx Docs

Start and Debug lmgrd and xilinxd Wrapup
This post has shown how to start and debug lmgrd and Xilinx. See the Index for topics.