Rustdesk service disables itself upon rustdesk start

So I wanted to check out rustdesk-bin again, to see if I can get rid of AnyDesk anytime soon.

It works in principle (when UI open), but I wanted to activate the service too, for unattended login. Nicely enough, it tells me how during the install:

==> NOTE: The RustDesk daemon must be started for RustDesk to work.
==> NOTE: To start it automatically on boot, run 'sudo systemctl enable --now rustdesk' in a terminal.

BUT it creates an /etc/systemd/system/multi-user.target.wants/rustdesk.service link for the fraction of a second and immediately deletes it again upon starting!

Thereafter, the service is dead:

$ systemctl status rustdesk.service 
â—‹ rustdesk.service - RustDesk
     Loaded: loaded (/usr/lib/systemd/system/rustdesk.service; disabled; preset>
     Active: inactive (dead)

Sep 09 12:22:00 t14-mch systemd[1]: Started RustDesk.
Sep 09 12:22:00 t14-mch systemd[1]: Stopping RustDesk...
Sep 09 12:22:00 t14-mch systemd[1]: rustdesk.service: Killing process 10254 (sy>
Sep 09 12:22:00 t14-mch systemd[1]: rustdesk.service: Deactivated successfully.
Sep 09 12:22:00 t14-mch systemd[1]: Stopped RustDesk.
Complete installation log
[matthias@t14-mch ~]$ yay -Syu rustdesk-bin 
Legen Sie Ihren rechten Zeigefinger auf den Fingerabdruckleser
:: Paketdatenbanken werden synchronisiert …
 endeavouros ist aktuell
 core ist aktuell
 extra                   7,9 MiB  3,93 MiB/s 00:02 [----------------------] 100%
 multilib ist aktuell
:: Durchsuche AUR nach Updates...
:: Durchsuche Datenbanken nach Updates...
:: 2 Pakete zu upgraden/installieren.
2  endeavouros/eos-bash-shared  25.9.3-1 -> 25.9.4-1
1  aur/rustdesk-bin                      -> 1.4.1-3
==> Pakete zum AusschlieĂźen: (z.B. "1 2 3", "1-3", "^4" oder Repo-Name)
 -> Das Ausschließen von Paketen kann zu teilweisen Aktualisierungen führen und Systeme beschädigen.
==> 
AUR Explicit (1): rustdesk-bin-1.4.1-3
Sync Dependency (1): eos-bash-shared-25.9.4-1
:: PKGBUILD ist auf dem neuesten Stand, ĂĽberspringe Herunterladen: rustdesk-bin
  1 rustdesk-bin                     (Build-Dateien sind vorhanden)
==> Pakete neu erstellen?
==> [N] Keine [A]lle [Ab]brechen [I]nstalliert [No]nicht installiert oder (1 2 3, 1-3, ^4)
==> a
:: Lösche (1/1): /home/matthias/.cache/yay/rustdesk-bin
HEAD ist jetzt bei 5f8bcf1 upgpkg: rustdesk 1.4.1-3: upstream binaries rebuild
Lösche rustdesk-1.4.1-3-x86_64.pkg.tar.zst
Lösche rustdesk-bin-1.4.1-3-x86_64.pkg.tar.zst
  1 rustdesk-bin                     (Build-Dateien sind vorhanden)
==> Unterschiede zeigen?
==> [N] Keine [A]lle [Ab]brechen [I]nstalliert [No]nicht installiert oder (1 2 3, 1-3, ^4)
==> a
diff --git /home/matthias/.cache/yay/rustdesk-bin/.gitignore /home/matthias/.cache/yay/rustdesk-bin/.gitignore
new file mode 100644
index 0000000..be832ea
--- /dev/null
+++ /home/matthias/.cache/yay/rustdesk-bin/.gitignore
@@ -0,0 +1,6 @@
+*
+*.*
+!.gitignore
+!.SRCINFO
+!PKGBUILD
+!rustdesk-bin.install
\ No newline at end of file
diff --git /home/matthias/.cache/yay/rustdesk-bin/PKGBUILD /home/matthias/.cache/yay/rustdesk-bin/PKGBUILD
new file mode 100644
index 0000000..b5cae58
--- /dev/null
+++ /home/matthias/.cache/yay/rustdesk-bin/PKGBUILD
@@ -0,0 +1,55 @@
+# Maintainer: KUHTOXO https://aur.archlinux.org/account/kuhtoxo
+# Maintainer: Zoddo <archlinux+aur@zoddo.fr>

:: Mit der Installation fortfahren? [J/n] 
  1 rustdesk-bin                     (Build-Dateien sind vorhanden)
==> Welche PKGBUILDs editieren?
==> [N] Keine [A]lle [Ab]brechen [I]nstalliert [No]nicht installiert oder (1 2 3, 1-3, ^4)
==> a

:: Mit der Installation fortfahren? [J/n] 
==> Erstelle Paket: rustdesk-bin 1.4.1-3 (Di 09 Sep 2025 12:20:08 CEST)
==> Empfange Quellen...
  -> Lade rustdesk-1.4.1-3-x86_64.pkg.tar.zst herunter...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 21.3M  100 21.3M    0     0  9740k      0  0:00:02  0:00:02 --:--:-- 12.0M
==> WARNUNG: Ăśberspringe ĂśberprĂĽfung der PGP-Signaturen der Quell-Dateien.
==> ĂśberprĂĽfe source_x86_64 Dateien mit sha256sums...
    rustdesk-1.4.1-3-x86_64.pkg.tar.zst ... Erfolg
:: (1/1) SRCINFO geparst: rustdesk-bin
:: Paketdatenbanken werden synchronisiert …
 endeavouros ist aktuell
 core ist aktuell
 extra ist aktuell
 multilib ist aktuell
:: Vollständige Systemaktualisierung wird gestartet …
Abhängigkeiten werden aufgelöst …
Nach in Konflikt stehenden Paketen wird gesucht …

Warnung: Zu wenig Spalten fĂĽr Tabellenanzeige vorhanden
Pakete (1) eos-bash-shared-25.9.4-1

Gesamtgröße des Downloads:             0,07 MiB
Gesamtgröße der installierten Pakete:  0,19 MiB
Größendifferenz der Aktualisierung:    0,00 MiB

:: Installation fortsetzen? [J/n] 
:: Pakete werden empfangen …
 eos-bash-shared-...    76,6 KiB   433 KiB/s 00:00 [----------------------] 100%
(1/1) SchlĂĽssel im SchlĂĽsselbund werden geprĂĽft    [----------------------] 100%
(1/1) Paket-Integrität wird überprüft              [----------------------] 100%
(1/1) Paket-Dateien werden geladen                 [----------------------] 100%
(1/1) Auf Dateikonflikte wird geprĂĽft              [----------------------] 100%
:: Pre-transaction-Hooks werden gestartet …
(1/1) Creating Timeshift snapshot before upgrade...
Mounted '/dev/nvme0n1p2' at '/run/timeshift/4122/backup'
------------------------------------------------------------------------------
Creating new snapshot...(RSYNC)
Saving to device: /dev/nvme0n1p2, mounted at path: /run/timeshift/4122/backup
Linking from snapshot: 2025-09-09_10-39-39
Syncing files with rsync...
Created control file: /run/timeshift/4122/backup/timeshift/snapshots/2025-09-09_12-20-16/info.json
RSYNC Snapshot saved successfully (40s)
Tagged snapshot '2025-09-09_12-20-16': ondemand
------------------------------------------------------------------------------
Maximum backups exceeded for backup level 'daily'
Mounted '/dev/nvme0n1p2' at '/run/timeshift/4275/backup'
------------------------------------------------------------------------------
Removing '2025-09-09_01-06-20'...
Removed '2025-09-09_01-06-20'                                                   
------------------------------------------------------------------------------
:: Paketänderungen werden verarbeitet …
(1/1) Aktualisiert wird eos-bash-shared            [----------------------] 100%
:: Post-transaction-Hooks werden gestartet …
(1/5) Reloading system manager configuration...
(2/5) Restarting marked services...
(3/5) Arming ConditionNeedsUpdate...
(4/5) Checking which packages need to be rebuilt
(5/5) Updating the desktop file MIME type cache...
==> Erstelle Paket: rustdesk-bin 1.4.1-3 (Di 09 Sep 2025 12:21:14 CEST)
==> Prüfe Laufzeit-Abhängigkeiten...
==> Prüfe Buildtime-Abhängigkeiten...
==> Empfange Quellen...
  -> rustdesk-1.4.1-3-x86_64.pkg.tar.zst gefunden
==> ĂśberprĂĽfe source_x86_64 Dateien mit sha256sums...
    rustdesk-1.4.1-3-x86_64.pkg.tar.zst ... Erfolg
==> Entferne existierendes $srcdir/ Verzeichnis...
==> Entpacke Quellen...
  -> Entpacke rustdesk-1.4.1-3-x86_64.pkg.tar.zst mit bsdtar
==> Quellen sind fertig.
==> Erstelle Paket: rustdesk-bin 1.4.1-3 (Di 09 Sep 2025 12:21:18 CEST)
==> Prüfe Laufzeit-Abhängigkeiten...
==> Prüfe Buildtime-Abhängigkeiten...
==> WARNUNG: Verwende bestehenden $srcdir/ Baum
==> Betrete fakeroot Umgebung...
==> Beginne package()...
==> Säubere Installation...
  -> Entferne libtool Dateien...
  -> Bereinige ungewollte Dateien...
  -> Entferne statische Bibliotheken...
  -> Komprimiere Man-Pages und Info-Seiten...
==> PrĂĽfe auf Paketierungsprobleme...
==> Erstelle Paket "rustdesk-bin"...
  -> Erstelle .PKGINFO Datei...
  -> Erstelle .BUILDINFO Datei...
  -> FĂĽge install Datei hinzu...
  -> Erstelle .MTREE-Datei...
  -> Komprimiere Paket... 
==> Verlasse fakeroot Umgebung.
==> Beendete Erstellung: rustdesk-bin 1.4.1-3 (Di 09 Sep 2025 12:21:22 CEST)
==> Räume auf...
Pakete werden geladen …
Abhängigkeiten werden aufgelöst …
Nach in Konflikt stehenden Paketen wird gesucht …

Paket (1)     Neue Version  Netto-Veränderung

rustdesk-bin  1.4.1-3               67,40 MiB

Gesamtgröße der installierten Pakete:  67,40 MiB

:: Installation fortsetzen? [J/n] 
(1/1) SchlĂĽssel im SchlĂĽsselbund werden geprĂĽft    [----------------------] 100%
(1/1) Paket-Integrität wird überprüft              [----------------------] 100%
(1/1) Paket-Dateien werden geladen                 [----------------------] 100%
(1/1) Auf Dateikonflikte wird geprĂĽft              [----------------------] 100%
:: Paketänderungen werden verarbeitet …
(1/1) Installiert wird rustdesk-bin                [----------------------] 100%
==> NOTE: The RustDesk daemon must be started for RustDesk to work.
==> NOTE: To start it automatically on boot, run 'sudo systemctl enable --now rustdesk' in a terminal.
Optionale Abhängigkeiten für rustdesk-bin
    libappindicator-gtk3: tray icon [Installiert]
    libayatana-appindicator: tray icon
:: Post-transaction-Hooks werden gestartet …
(1/4) Reloading system manager configuration...
(2/4) Arming ConditionNeedsUpdate...
(3/4) Updating icon theme caches...
(4/4) Updating the desktop file MIME type cache...
[matthias@t14-mch ~]$ sudo systemctl enable --now rustdesk
Created symlink '/etc/systemd/system/multi-user.target.wants/rustdesk.service' → '/usr/lib/systemd/system/rustdesk.service'.
[matthias@t14-mch ~]$ systemctl status rustdesk.service 
â—‹ rustdesk.service - RustDesk
     Loaded: loaded (/usr/lib/systemd/system/rustdesk.service; disabled; preset>
     Active: inactive (dead)

Sep 09 12:22:00 t14-mch systemd[1]: Started RustDesk.
Sep 09 12:22:00 t14-mch systemd[1]: Stopping RustDesk...
Sep 09 12:22:00 t14-mch systemd[1]: rustdesk.service: Killing process 10254 (sy>
Sep 09 12:22:00 t14-mch systemd[1]: rustdesk.service: Deactivated successfully.
Sep 09 12:22:00 t14-mch systemd[1]: Stopped RustDesk.
[matthias@t14-mch ~]$ ls /etc/systemd/system/multi-user.target.wants/
anydesk.service       cups.path          lm_sensors.service      smartd.service
avahi-daemon.service  cups.service       NetworkManager.service  sshd.service
cronie.service        firewalld.service  remote-fs.target
[matthias@t14-mch ~]$ 

The interesting thing: I did exactly the same on my other EOS/Cinnamon laptop, and immediately the service started and showed the RustDesk icon in the tray!

What could be different, or how to repair this?

P.S.: I also tried removing the package again (yay -Rns rustdesk-bin), deleting ~/.config/rustdesk/, rebooting, reinstall… no luck.

Darn, meanwhile must have read everything written about Rustdesk, and watched lots of (unhelpful) videos about it.

I can’t for the life of me make out what is wrong. Manually changed links, config files, put option stop-service = 'N' in and back out of ~/.config/rustdesk/RustDesk2.toml, many restarts and service start/stops — no goal.

The other machine happily runs along, this one keeps killing its service (and link) as soon as started. The only thing that works is manually starting rustdesk --service in a terminal (which the service should do).

Seems some kind of obscure problem that never got solved, there are issues in their GitHub from Ubuntu, Manjaro (suggesting using EndeavourOS, ha ha) and others.

Damn.

Un·be·liev·a·ble. As soon as I had written the above, I thought I’d give it one last try before uninstalling again. Seems persistence is key…

I did nothing more than start the UI via the Menu, toggled off and back on the Service using the button on the settings page (for some obscure reason called “Vermittlungsdienst” in German). Watched stop-service = 'Y' appearing and disappearing in RustDesk2.toml while doing that. Closed the UI.

Thought I’d try enabling it again using

$ sudo systemctl enable --now rustdesk.service

but fortunately had a look before:

$ systemctl status rustdesk.service
â—Ź rustdesk.service - RustDesk
     Loaded: loaded (/usr/lib/systemd/system/rustdesk.service; enabled; preset:>
     Active: active (running) since Tue 2025-09-09 17:14:13 CEST; 12min ago
 Invocation: bb0324a95808449380d34eb23caf33d2
   Main PID: 902 (rustdesk)
      Tasks: 56 (limit: 18651)
     Memory: 140.2M (peak: 282.1M)
        CPU: 1min 26.761s
     CGroup: /system.slice/rustdesk.service
             ├─ 902 /usr/bin/rustdesk --service
             ├─3938 sudo -E XDG_RUNTIME_DIR=/run/user/1000 -u matthias /usr/sha>
             ├─3940 /usr/share/rustdesk/rustdesk --server
             └─3943 /usr/share/rustdesk/rustdesk --tray

Lo and behold—it was running!

Did a restart of the system to confirm, and it kept working. Highly mysterious.

Small glitch: Once you log into the Cinnamon session, the tray icon appears twice for a few seconds, then “reduces” to one again.

But it works. Somehow.

Now I can finally start doing the real tests, and already found the first bug: Doesn’t transmit my PC-105 key keyboard Level5 shift (E2 keyboard layout). But I can use the workaround implemented for Windoze: Use AltGr+F then type the intended character. So an ellipsis … is now AltGr+F, . instead of L5Shift+.

Sigh…

I’ve said it before, and no doubt will say it again, computers like to mess with our heads!

1 Like

I actually thought about exactly that when it finally worked! (You mentioned it before… :joy: )

Looks like I’ll have to stick with AnyDesk for a while longer. Too much trust in new technologies in Rustdesk. Software works in principle, but the UI needs rather new stuff. No joy with people having laptops with older NVIDIA GPUs, or even Mint 19.3 or 21.3 (yes, people still use that). Fluttr craps out even trying to only read the OpenGL version number!

The good part: If it works, Rustdesk works nicely. Even on Android (even though Google try to shun you from using it) and Windows. The screen transmission is slightly less performant than with Anydesk (they use their own codec), and heavily relies on hardware acceleration being available.

Also nice: Peaceful coexistence with Anydesk, meaning you can have both installed and they don’t interfere.

Another one to watch, Rustdesk is. Too bad they’re only “quasi Open Source” (you need proprietary “Pro” at an exorbitant pricing scheme for some lesser used features like the Adressbook). Apparently picked up that scheme from TeamViewer and AnyDesk. Lure them in, then restrict features and make them pay subscriptions… sigh.

Still worth a recommendation if you don’t have to support too many machines on which it doesn’t work.

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.