Xvnc через systemctl: как использовать "xhost +"

948
macetw

Я хотел бы запустить Xvnc на Fedora 16 в качестве службы. Не vncserver, учитывая, что он имеет вес полного оконного менеджера, а просто Xvnc для запуска X.

Я также хотел бы, чтобы "xhost +" запускался в сеансе X. Вот что у меня есть в моем сценарии systemctl:

[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 

В результате X сессия работает. и не запрашивать пароли ("= Нет"). Но я не могу подключиться к этому X-серверу с других хостов (xhost +), что мне и нужно.

Почему этот ExecStartPost не работает? «Состояние systemctl» не показывает никаких выходных данных, но могу ли я найти этот вывод откуда-то еще?

Вот этот статус, просто для справки:

 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 ответ на вопрос

0
macetw

My solution was to make a script wrapper, where it runs "Xvnc", sleeps a second (optional?), and runs "xhost+" on the new DISPLAY. It works now.

#!/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 +