Ubuntu 18.04에서 TigerVNC 시스템 프로세스 구성

Ubuntu 18.04에서 TigerVNC 시스템 프로세스 구성

저는 데스크탑 Ubuntu 18.04(GNOME 등)를 새로 설치할 때 TigerVNC가 작동하도록 노력해 왔습니다. 실행하면 vncserver :1 -localhost no완벽하게 연결할 수 있지만 시스템 서비스가 작동하지 않는 것 같습니다.

시스템 시작 후 로그인:

Xvnc TigerVNC 1.7.0 - built Dec  5 2017 09:25:01
Copyright (C) 1999-2016 TigerVNC Team and many others (see README.txt)
See http://www.tigervnc.org for information on TigerVNC.
Underlying X server release 11905000, The X.Org Foundation


Wed Jul 10 15:13:27 2019
 vncext:      VNC extension running!
 vncext:      Listening for VNC connections on all interface(s), port 5901
 vncext:      created VNC server for screen 0
vncconfig: unable to open display ":1"

** (process:1184): WARNING **: 15:13:28.311: Could not make bus activated clients aware of XDG_CURRENT_DESKTOP=GNOME environment variable: Could not connect: Connection refused

터미널( )에서 vncserver를 수동으로 시작하고 로그인합니다 vncserver :1 -localhost no.

Xvnc TigerVNC 1.7.0 - built Dec  5 2017 09:25:01
Copyright (C) 1999-2016 TigerVNC Team and many others (see README.txt)
See http://www.tigervnc.org for information on TigerVNC.
Underlying X server release 11905000, The X.Org Foundation


Wed Jul 10 15:14:25 2019
 vncext:      VNC extension running!
 vncext:      Listening for VNC connections on all interface(s), port 5901
 vncext:      created VNC server for screen 0
XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":1"
      after 175 requests (174 known processed) with 0 events remaining.

x 시작:

#!/bin/sh

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
vncconfig -iconic & dbus-launch --exit-with-session gnome-session &

[이메일 보호됨]

[Unit]
Description=TigerVNC Service
After=syslog.target network.target

[Service]
Type=simple
User=<user>
PAMName=login

PIDFile=/home/<user>/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver :%i -localhost no
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

답변1

몇 번의 시행착오 끝에 사용자가 로그인한 후 사용자 모드에서 프로세스를 실행하기로 결정했습니다. 사용자가 로그인한 후에 서비스가 시작되고 자동 로그인이 활성화되면 내 목적에 완벽하게 작동합니다.

파일을 삭제하고 다음 내용으로 새 파일을 만들었습니다(그리고 누락된 폴더를 만들었습니다)./etc/systemd/system/[email protected]$HOME/.local/share/systemd/user/[email protected]

[이메일 보호됨]

[Unit]
Description=TigerVNC Service

[Service]
Type=forking
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver :%i -localhost no
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=default.target

그런 다음 서비스를 활성화 systemctl daemon-reload --user하고 systemctl enable vncserver@1 --user.

답변2

SystemD 'User=' 라인에서 작동하도록 할 수 없으며 evan은 PAMName 라인에서 작동하지 않습니다.

몇 번의 시행착오 끝에 다음 작업을 수행할 수 있었습니다. "su"를 사용해야 했지만 여전히 작동합니다. 참고: 사용자 이름을 Linux 사용자 이름으로 바꿔야 합니다. TigerVNC를 처음 설정하는 경우 이 사용자에 대한 vncpasswd도 생성해야 합니다. 이렇게 하려면 서비스를 시작하거나 시스템을 재부팅하기 전에 쉘에서 사용자 이름으로 vncpasswd를 실행하면 됩니다.

다른 이름으로 저장: /etc/systemd/system/[이메일 보호됨]

[단위]
설명=TigerVNC 서비스
이후=syslog.target network.target

[제공하다]
유형=단순
퇴장 후 남은 잔량 = 예
성공적인 종료 상태=0

PID파일=/home/사용자 이름/.vnc/%H:%i.pid
ExecStartPre=/bin/su -l 사용자 이름 -c "/usr/bin/tigervncserver -kill :%i > /dev/null"
ExecStart=/bin/su -l 사용자 이름 -c "/usr/bin/tigervncserver :%i -localhost no"
ExecStop=/bin/su -l 사용자 이름 -c "/usr/bin/tigervncserver -kill :%i"

[설치하다]
WantedBy=default.target

답변3

이것su에 대한 솔루션Paul Richards가 발견한 솔루션은 Ubuntu 18.04에서 TigerVNC를 서비스로 시작하기 위한 최고의 솔루션입니다.

(Gnome 데스크탑 대신) Ubuntu 데스크탑을 얻으려면 ~/.vnc/xstartup을 편집하십시오:

#!/bin/sh
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources

vncconfig −nowin &
dbus-launch --exit-with-session env GNOME_SHELL_SESSION_MODE=ubuntu gnome-session --session=ubuntu &

관련 정보