X11vnc vor dem Login starten (Manjaro)

L

linuxfan

Gast
Ich habe Manjaro per Architekt installiert (Deepin-Desktop) und möchte nun X11vnc automatisch starten lassen. Aber headless, d.h. noch ohne dass sich ein User eingelogt hat und ohne dass ein Monitor angeschlossen sein muss. Wie würdet ihr das am besten machen?
 
X11vnc ist doch für die Fernsteuerung einer Xorg-Sitzung gedacht und die gibt es nur mit einem eingeloggten Nutzer. Warum denn kein SSH mit der -X Option zum Ausführen von grafischen Programmen?
 
Aber X ist doch schon für den Display Manager gestartet worden. Da muss man sich irgendwie einklinken können. Ich weiß nur nicht, wie. Auch weil im Arch Wiki bei LightDM die Autostart-Sektion fehlt. Man müsste zudem als Root starten, keine Ahnung wie man das am besten wo unterbringt.

X11vnc, weil man damit die richtige Display ":0" Sitzung sieht und somit auch den lokalen Mauszeiger.

Edit: Also ich habe keinen Monitor und will ein iPad als Monitor hinstellen, daher VNC. Damit man die Tastatur und Maus des PCs nutzen kann, brauche ich das :0 Display per X11vnc.
 
Zuletzt bearbeitet von einem Moderator:
Uff, ehrlich gesagt, selbst wenn das klappt, dürfte die Übertragung nicht sonderlich flüssig sein, es wird sich also nicht so anfühlen, als wäre das iPad als Monitor angeschlossen.
 
Kommt ganz darauf an. Wenn du ein großes Fenster mit vielen Aktualisierungen hast, fährst du mit VNC noch besser, da es einfach die Frames droppt. Über VNC lassen sich in einem kleinen Fenster sogar flüssig Videos (ohne Ton) schauen. Das würde ich hinten anstellen.

Für meine headless Maschine starte ich bei Bedarf auch einen Desktop mittels VNC. Funktioniert wunderbar.
Dazu verwende ich tigervnc. Der Start ist denkbar einfach mit einem simplen "vncserver".
Gießt man das in einen systemd Service mit entsprechendem User= Parameter könnte folgendes Beispiel eventuell schon klappen (Example 4 aus der systemd.service manpage, erweitert um den User und Group Parameter). Unsauber ist der Shutdown. Bei dieser Lösung brauchst du auf dem monitorlosem Gerät keinen lokalen X-Server starten.

Code:
[Unit]
Description=VNC Server

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/vncserver
ExecStop=/usr/bin/vncserver -kill :1
User=myuser
Group=mygroup

[Install]
WantedBy=multi-user.target

Alternativ hätte ich noch den x0vncserver im Angebot. Ebenfalls schmutzig, aber zweckmäßig kommt man damit an den laufenden X-Server. Ich habe nie ausprobiert, ob das schon vor dem Login greift. Aber vielleicht klappt es ja.

Code:
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking
User=myuser
ExecStart=/bin/sh -c '/usr/bin/x0vncserver -display :0 -rfbport 5901 -passwordfile /home/myuser/.vnc/passwd &'

[Install]
WantedBy=multi-user.target
 
  • Gefällt mir
Reaktionen: Photon
Photon schrieb:
Besser als was denn? Nicht als das direkte Anschließen eines richtigen Monitors, oder? :)

Das kommt darauf an. Wenn es ein 15" Röhrenmonitor mit 800x600 Auflösung ist würde ich schon behaupten, dass es angenehmer wäre einen virtuellen Bildschirm auf ein Tablet zu streamen. :)

Der Vergleich war auf auf X11-Forwarding bezogen. Es funktioniert eigentlich wunderbar, aber ich hatte mal das Problem, dass sich alles gestaut hatte, weil eine Animation die ganze Zeit Fensterupdates verursacht hat, die verarbeitet wurden und dadurch die Eingaben sehr schnell am Ende einer langen und wachsenden Warteschlange gelandet sind. Das hängt natürlich stark vom Netzwerk ab.

Ich habe es gerade mit 2 Heimleitungen mit 200+ MBit/s ausprobiert.
20 Mbit/s + 0,8 Mbit/s Upload während dieses kleine (recht flüssige) Video lief. Aber es produziert sehr schnell das Problem mit der Warteschlange und dann wartest du auf jede Eingabe.

1577351704795.png


So viel dazu. :)

Wem VNC (auch gerade sicherheitstechnisch) nicht zusagt, der kann bei x2go vorbeischauen.
 
Ist denn X11vnc oder x0vncserver besser? Im Arch Wiki stand irgendwas von Achtung, x0vncserver arbeitet unsauber mit Polling oder so ähnlich. Und an der Stelle verweisen sie einen auf X11vnc. Deswegen bin ich direkt bei X11vnc gelandet.

Ich habe gestern schon alles durchprobiert aus diesem Thread: https://askubuntu.com/questions/229989/how-to-setup-x11vnc-to-access-with-graphical-login-screen
Aber der erstellte (enabled) Service startet X11vnc nicht vor dem Login. Wenn man sich einloggt, dann lässt er sich starten. Nun ist der Thread schon ein paar Jahre alt, wer weiß was sich inzwischen alles geändert hat, auch bezüglich Systemd? Ein User meinte, Restart-sec hätte sich inzwischen geändert in RestartSec. Wer weiß, was noch alles?
Hat jemand Lust, das mal auszuprobieren?

Code:
[Unit]
Description="x11vnc"
Requires=display-manager.service
After=display-manager.service

[Service]
ExecStart=/usr/bin/x11vnc -xkb -noxrecord -noxfixes -noxdamage -display :0 -auth guess -rfbauth /etc/x11vnc.pass
ExecStop=/usr/bin/killall x11vnc
Restart=on-failure
Restart-sec=2

[Install]
WantedBy=multi-user.target

Da ich wegen Deepin LightDM als Displaymanager habe, habe ich den "-auth guess"-Part auch mal ersetzt durch "-auth /var/run/lightdm/root/\:0". Startet aber ebenfalls nicht vor dem Login.
 
Zuletzt bearbeitet von einem Moderator:
Zurück
Oben