GUI-App mit systemd vor dem Login ausführen (nachdem X gestartet wurde)?

1660
user3671607

Ich versuche, den TightVNC-Server auf einem Ubuntu-Computer mit Systemd auszuführen. Die Unit-Datei (/etc/systemd/system/tiger.service) sieht folgendermaßen aus:

[Unit] Description=Tiger VNC server After=display-manager.service  [Service] Type=simple Environment=XAUTHORITY=/home/myusername/.Xauthority ExecStart=/usr/bin/sudo -H -u myusername bash -c '/usr/bin/x0vncserver -rfbport 5901 -PasswordFile path-to-passwd-file -PollingCycle 30 -AlwaysShared -display :0' 

Ich kann keine Verbindung zum VNC-Server herstellen und systemctl status tiger.servicegibt Folgendes zurück:

Jun 01 03:12:49 ubuntu systemd[1]: Started Tiger VNC server. Jun 01 03:12:49 ubuntu sudo[958]: root : TTY=unknown ; PWD=/ ; USER=myusername ; COMMAND=/bin/bash -c /opt/rmm-agent/x0vncserver -rfbport 5901 -PasswordFile /opt/rmm-agent Jun 01 03:12:49 ubuntu sudo[958]: pam_unix(sudo:session): session opened for user myusername by (uid=0) Jun 01 03:12:49 ubuntu sudo[958]: /usr/bin/x0vncserver: unable to open display ":0" Jun 01 03:12:49 ubuntu systemd[1]: tiger.service: Main process exited, code=exited, status=1/FAILURE Jun 01 03:12:49 ubuntu systemd[1]: tiger.service: Unit entered failed state. Jun 01 03:12:49 ubuntu systemd[1]: tiger.service: Failed with result 'exit-code'. 

Wenn ich es systemctl start tiger.servicevon einer Konsole aus starte, läuft alles gut, ich kann mich mit dem VNC-Server verbinden.

Ich habe Requires=statt After=und graphical.targetstatt versucht display-manager.service. Ich bekomme unable to open display ":0"in allen Fällen dasselbe .

0
`ExecStart = sudo`? Sie wissen, dass es eine Einstellung für "User =" gibt, oder? grawity vor 7 Jahren 1
Welchen Displaymanager verwenden Sie auch? (Ich vermute, LightDM von Ubuntu) grawity vor 7 Jahren 0
Ich benutze LightDM, ja, aber das soll auch bei anderen Distributionen funktionieren. Momentan benutze ich Ubuntu zum Testen, weil ich damit am wohlsten bin. user3671607 vor 7 Jahren 0
Was wollen Sie eigentlich erreichen? Terminalserver erstellen? Oder den Zugriff auf Ihre Konsolensitzung zulassen? Daniel B vor 7 Jahren 0

1 Antwort auf die Frage

0
Eoin McMahon

Möglicherweise befindet sich in Ihrem Benutzerverzeichnis kein XAuthority, bis Sie sich angemeldet haben. Es gibt einige Informationen darüber, wo Sie die Dokumentations-Site x11vnc finden können. XAuthority existiert nur für root, in einem Verzeichnis, das mit dem Display-Manager und der Ubuntu-Version variiert. Es gibt jedoch ein paar gute Hinweise.

Ich versuche gerade, diesen vnc-Server in Kubuntu 16.04 automatisch zu starten, und meine Berechtigungsdatei lautet:

/var/run/lightdm/root/:0