Troubleshooting the NoMachine Connection Monitor on Linux
The NoMachine Connection Monitor is the server side service, displayed in the system tray of the host machine (!M icon), in charge of constantly monitoring incoming connection requests. The Monitor process is owned by the owner of the physical desktop. For example:
# ps -ef | grep -monitor
nxtest01 20072 19711 0 Mar22 ? 00:00:05 /usr/NX/bin/nxrunner.bin --monitor --pid 21131
The Monitor service is automatically started by the system, and restarted in case of failure. If for some reasons it cannot be run, users will be no longer able to start virtual desktops on this host or connect to its physical desktop.
TROUBLESHOOTING
To look for possible problems, verify if a core file has been generated on the system by the 'nxrunner.bin --monitor' process. If the core file is present, send it to the Support Team.
In some cases, however, the core file is not generated when the Monitor process suddenly terminates. In order to identify the cause of the problem, is then necessary to gather relevant information in alternative ways.
If core files have not been created, there are two possible ways to obtain additional logs.
1) Activate more verbose logs in the Monitor session file
This way is useful to debug problems related to the starting of the Monitor.
Modify the /usr/NX/bin/nxrunner script by adding the following lines before the "exec" command:
NX_MONITOR_DEBUG=1
export NX_MONITOR_DEBUG
Then reproduce the problem, and gather the following set of logs: (i) session directory from the user's home/.nx directory and (ii) the /usr/NX/var/log directory. Compress such directories and send them a e-mail attachment to the Support Team.
2) Debug the Monitor process with the strace tool
Modify the /usr/NX/bin/nxrunner script and replace this line:
exec "$NXPath/bin/nxrunner.bin" "$@"
with:
exec strace -ff -o /tmp/nxrunner.trace "$NXPath/bin/nxrunner.bin" "$@"
The strace output will be collected in the /tmp/nxrunner.trace file. Send this file to the Support Team.
Modify the /usr/NX/bin/nxrunner script by adding the following lines before the "exec" command:
NX_MONITOR_DEBUG=1
export NX_MONITOR_DEBUG
Then reproduce the problem, and gather the following set of logs: (i) session directory from the user's home/.nx directory and (ii) the /usr/NX/var/log directory. Compress such directories and send them a e-mail attachment to the Support Team.
3) Exclude fonts incompatibilities
If the Monitor process terminates at a very early stage, try to rename the user's fonts directory (~/.fonts) and verify if the Monitor then starts correctly. If yes, this can indicate possibile incompatibilities between user's personal fonts and the libfontconfig library shipped with the NoMachine installation.
Note that up to version 8, the nxrunner component was named nxclient. Replace that in the instructions above, if you're debugging a version older than v8.
