저는 데스크탑 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 &