NoMachine adventures on openSUSE Leap and Tumbleweed
I had written earlier about my remote desktop experiments. I eventually settled on NoMachine, and since then, it has been rock solid; until yesterday, when I had to dig a bit deeper.
NoMachine on openSUSE Leap
NoMachine provides rpm
, deb
, and tar.gz
packages. The rpm
is officially supported on openSUSE 15.x, with no mention of Tumbleweed. I chose the 64-bit tar.gz
package for greater control if something went wrong.
The general installation steps are straightforward:
- Download and save the
tar.gz
file in/usr
. - Extract the archive:
- Run the installer:
Within a minute, NoMachine was up and running.
NoMachine on openSUSE Tumbleweed
Performing the same steps on Tumbleweed led to a failure:
NX> 700 Running: systemctl restart nxserver.service.
NX> 700 ERROR: Cannot enable systemd service: .
NX> 700 Server install completed with warnings.
NX> 700 Please review the install log for details.
NX> 700 Install completed with errors at: Mon Apr 05 16:17:09 2021.
Trying to start nxserver.service
manually revealed that the service didn’t exist.
The following confirmed it:
systemctl list-units --type=service | grep nx
Nothing.
In /etc/systemd/system/
, there was no nxserver.service
unit.
On my openSUSE Leap machine, however, /etc/systemd/system/multi-user.target.wants/nxserver.service
was a symlink to /usr/lib/systemd/system/nxserver.service
.
Armed with this clue, I checked my Tumbleweed system — and sure enough, /usr/lib/systemd/system/nxserver.service
was missing.
Two possibilities came to mind:
- the unit might be dynamically generated during installation, in which case I could copy it from Leap, or
- it might already exist in the extracted
tar.gz
directory.
It turned out to be the latter. I found nxserver.service
inside /usr/NX/scripts/systemd
.
Here’s what it contained:
[Unit]
Description=NoMachine Server daemon
After = syslog.target network.target network-online.target sshd.service http-daemon.target.service htd.service
Wants = network-online.target
[Service]
User=nx
Group=nx
ExecStart=-/etc/NX/nxserver --daemon
KillMode=process
SuccessExitStatus=0 SIGTERM
Restart=always
[Install]
WantedBy=multi-user.target
There were no environment-specific values, so I proceeded as follows:
- Copied the file to the systemd directory:
- Created a symbolic link:
- Enabled the service:
- Started it and verified functionality:
Everything worked perfectly after that.
Conclusion
NoMachine remains an excellent remote desktop solution for Linux.
It installs cleanly on openSUSE Leap, but on Tumbleweed the nxserver.service
unit file doesn’t get installed automatically.
Once manually copied and linked, the service functions flawlessly.