Я хотел бы запустить 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

1 ответ1

0

Мое решение было сделать обертку сценария, где он запускает "Xvnc", спит секунду (необязательно?) И запускает "xhost+" на новом DISPLAY. Это работает сейчас.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .