Xvnc via systemctl: wie benutzt man "xhost +"

1065
macetw

Ich möchte Xvnc auf Fedora 16 als Dienst ausführen. Nicht vncserver, da dies das Gewicht eines vollständigen Fenstermanagers trägt, sondern nur Xvnc, um X zu starten.

Ich möchte auch "xhost +" auf der X-Sitzung ausführen. Folgendes habe ich bisher in meinem systemctl-Skript:

[Service] Type=simple User=build Environment=DISPLAY=:2 ExecStart=/usr/bin/Xvnc :2 -geometry 1280x1024 -SecurityTypes=None -AlwaysShared=1 ExecStartPost=-xhost + ExecStop=/usr/bin/vncserver -kill :2 

Das Ergebnis ist, dass die X-Sitzung funktioniert. und keine Aufforderung zur Eingabe von Passwörtern ("= None"). Ich kann jedoch keine Verbindung zu diesem X-Server von anderen Hosts (xhost +) herstellen, was ich brauche.

Warum funktioniert ExecStartPost nicht? Der "Systemctl-Status" zeigt keine Ausgabe davon, aber könnte ich die Ausgabe von woanders finden?

Hier ist dieser Status nur als Referenz:

 Loaded: loaded (/lib/systemd/system/vncserver@:2.service; enabled) Active: active (running) since Thu, 11 Apr 2013 11:02:26 -0400; 2s ago  Process: 13577 ExecStop=/usr/bin/vncserver -kill :2 (code=exited, status=2) Main PID: 13584 (Xvnc) CGroup: name=systemd:/system/vncserver@.service/:2 └ 13584 /usr/bin/Xvnc :2 -geometry 1280x1024 -SecurityTypes=None -AlwaysShared=1 
0

1 Antwort auf die Frage

0
macetw

Meine Lösung bestand darin, einen Script-Wrapper zu erstellen, bei dem "Xvnc" ausgeführt wird, eine Sekunde geschlafen wird (optional?) Und auf dem neuen DISPLAY "xhost +" ausgeführt wird. Es funktioniert jetzt.

#!/bin/csh /usr/bin/Xvnc $* -geometry 1280x1024 -SecurityTypes=None -AlwaysShared=1 & while ($#argv) if ($argv[1] =~ ":*") then setenv DISPLAY $argv[1] endif shift end  sleep 1 xhost +