개요
내 목표는 Ubuntu 16.04 LTS(데스크탑 환경 포함)에서 virt-manager로 구축된 Debian 9.5 VM 게스트에 대한 VNC 액세스를 설정하는 것입니다.
gnome-session(자세한 내용은 아래 참조)을 사용하도록 /etc/vnc/xstartup을 구성했으며 /usr에 있는 /lib/systemd/system/{service-name}.service에 정의된 systemd 서비스를 설정했습니다. 스크립트 사용 / local/bin/{service-script} - /usr/bin/vncserver를 직접 호출하여 중지 및 시작 작업을 수행합니다.
현재 동작은 LAN의 다른 장치에서 VNC 서버 인스턴스에 로그인할 때 빈 화면이 나타나는 것입니다. 이 구성이 작동하지 않는 이유와 Ubuntu/Debian 데스크탑 환경 패키지 계층 구조에 대한 추가 정보를 알고 싶습니다.
커플을 위한 참고사항:
- 이 정확한 구성은 Virtual Box를 실행하는 Windows 호스트를 사용하여 작동합니다.
- 여기에 있는 모든 설정은 내 Windows 호스트에 대해 (작동한) 온라인에서 찾은 내용을 혼합한 것이므로 완전히 이해하지 못할 수도 있는 중복되거나 쓸모 없는 구성을 지적해 주십시오.
- 문제의 {user}는 sudoers 목록에 없지만 그래픽 설치 중에 생성된 첫 번째 사용자입니다.
- 상태 출력의 gnome 설정 오류가 의심스러운 것 같지만 이를 이해할 만큼 지식이 부족합니다. (다른 사람도 그럴 수 있지 않을까?)
파일 목록 및 디버깅
체계
<user>@VPS:~$ ls -l /lib/systemd/system/<srvc-name>.service
-rw-r--r-- 1 root root 268 Aug 14 08:46 /lib/systemd/system/<srvc-name>.service
[Unit]
Description=Manage VNC Server
[Service]
Type=forking
ExecStart=/usr/local/bin/<srvc-script> start
ExecStop=/usr/local/bin/<srvc-script> stop
ExecReload=/usr/local/bin/<srvc-script> restart
User=<user>
[Install]
WantedBy=multi-user.target
서비스 스크립트
<user>@VPS:~$ ls -l /usr/local/bin/<srvc-script>
-rwxr-xr-x 1 root staff 297 Aug 14 09:01 /usr/local/bin/<srvc-script>
#!/bin/bash
PATH="$PATH:/usr/bin/"
DISPLAY="2"
DEPTH="24"
GEOMETRY="1280x1024"
OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY} -localhost no"
case "$1" in
start)
/usr/bin/vncserver ${OPTIONS}
;;
stop)
/usr/bin/vncserver -kill :${DISPLAY}
;;
restart)
$0 stop
$0 start
;;
esac
exit 0
xstart
<user>@VPS:~$ ls -l /etc/vnc/xstartup
-rwxr-xr-x 1 root root 155 Aug 14 13:52 /etc/vnc/xstartup
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
xrdb $HOME/.Xresources
xsetroot -solid grey
export XKL_XMODMAP_DISABLE=1
gnome-session &
sudo 서비스 {srvc-name} 상태
● <srvc-name>.service - Manage VNC Server
Loaded: loaded (/lib/systemd/system/<srvc-name>.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2018-08-14 14:01:22 PDT; 1min 9s ago
Process: 419 ExecStart=/usr/local/bin/<srvc-script> start (code=exited, status=0/SUCCESS)
Tasks: 151 (limit: 4915)
CGroup: /system.slice/<srvc-name>.service
├─487 /usr/bin/Xtigervnc :2 -desktop VPS:2 (<user>) -auth /home/<user>/.Xauthority -geometry 1280x1024 -depth 24 -rfbwait 30000 -rfbauth /home/<user>/.vnc/passwd -rfbport 5902 -pn -SecurityTypes VncAuth,TLSVnc
├─498 /usr/bin/perl /usr/bin/vncserver -depth 24 -geometry 1280x1024 :2 -localhost no
├─499 /bin/sh /etc/X11/Xvnc-session
├─501 vncconfig -iconic
├─502 /usr/lib/gnome-session/gnome-session-binary
├─540 dbus-launch --autolaunch 5e4be6148690420bb12518bb1b2bf070 --binary-syntax --close-stderr
├─554 /usr/bin/dbus-daemon --fork --print-pid 5 --print-address 7 --session
├─612 /usr/bin/dbus-launch --exit-with-session --sh-syntax
├─615 /usr/bin/dbus-daemon --fork --print-pid 5 --print-address 7 --session
├─658 /usr/bin/ssh-agent x-session-manager
├─674 /usr/lib/at-spi2-core/at-spi-bus-launcher
├─679 /usr/bin/dbus-daemon --config-file=/usr/share/defaults/at-spi2/accessibility.conf --nofork --print-address 3
├─681 /usr/lib/at-spi2-core/at-spi2-registryd --use-gnome-session
├─689 /usr/lib/gvfs/gvfsd
├─694 /usr/lib/gvfs/gvfsd-fuse /home/<user>/.gvfs -f -o big_writes
├─718 /usr/bin/gnome-keyring-daemon --start --components=secrets
├─736 /usr/lib/gnome-settings-daemon/gnome-settings-daemon
├─757 /usr/bin/pulseaudio --start --log-target=syslog
├─780 /usr/lib/gnome-settings-daemon/gsd-printer
├─793 /usr/lib/evolution/evolution-alarm-notify
├─798 /usr/lib/tracker/tracker-store
├─799 /usr/lib/tracker/tracker-miner-user-guides
├─800 /usr/lib/tracker/tracker-miner-apps
├─802 /usr/lib/tracker/tracker-miner-fs
├─803 /usr/lib/tracker/tracker-extract
├─830 /usr/lib/evolution/evolution-source-registry
├─836 /usr/lib/gnome-online-accounts/goa-daemon
├─845 /usr/lib/telepathy/mission-control-5
├─846 /usr/lib/gnome-online-accounts/goa-identity-service
├─855 /usr/lib/evolution/evolution-calendar-factory
├─867 /usr/lib/evolution/evolution-calendar-factory-subprocess --factory contacts --bus-name org.gnome.evolution.dataserver.Subprocess.Backend.Calendarx855x2 --own-path /org/gnome/evolution/dataserver/Subprocess/Backend/Calendar/855/2
├─869 /usr/lib/gvfs/gvfs-udisks2-volume-monitor
├─886 /usr/lib/dconf/dconf-service
├─891 /usr/lib/evolution/evolution-addressbook-factory
├─892 /usr/lib/evolution/evolution-calendar-factory-subprocess --factory local --bus-name org.gnome.evolution.dataserver.Subprocess.Backend.Calendarx855x3 --own-path /org/gnome/evolution/dataserver/Subprocess/Backend/Calendar/855/3
├─917 /usr/lib/gvfs/gvfs-gphoto2-volume-monitor
├─923 /usr/lib/evolution/evolution-addressbook-factory-subprocess --factory local --bus-name org.gnome.evolution.dataserver.Subprocess.Backend.AddressBookx891x2 --own-path /org/gnome/evolution/dataserver/Subprocess/Backend/AddressBook/891/2
├─932 /usr/lib/gvfs/gvfs-afc-volume-monitor
├─944 /usr/lib/gvfs/gvfs-goa-volume-monitor
└─949 /usr/lib/gvfs/gvfs-mtp-volume-monitor
Aug 14 14:01:21 VPS pulseaudio[776]: [pulseaudio] pid.c: Daemon already running.
Aug 14 14:01:21 VPS gnome-settings-[736]: Failed to StopUnit service: GDBus.Error:org.freedesktop.DBus.Error.Spawn.ChildExited: Process org.freedesktop.systemd1 exited with status 1
Aug 14 14:01:21 VPS gnome-settings-[736]: Failed to StopUnit service: GDBus.Error:org.freedesktop.DBus.Error.Spawn.ChildExited: Process org.freedesktop.systemd1 exited with status 1
Aug 14 14:01:21 VPS gnome-settings-[736]: Failed to StopUnit service: GDBus.Error:org.freedesktop.DBus.Error.Spawn.ChildExited: Process org.freedesktop.systemd1 exited with status 1
Aug 14 14:01:21 VPS gnome-settings-[736]: g_task_return_error: assertion 'error != NULL' failed
Aug 14 14:01:21 VPS gnome-session-binary[502]: Entering running state
Aug 14 14:01:21 VPS goa-daemon[836]: goa-daemon version 3.22.5 starting
Aug 14 14:01:22 VPS org.gtk.vfs.AfcVolumeMonitor[615]: Volume monitor alive
Aug 14 14:01:22 VPS systemd[1]: Started Manage VNC Server.
Aug 14 14:01:45 VPS pulseaudio[757]: [pulseaudio] bluez5-util.c: GetManagedObjects() failed: org.freedesktop.DBus.Error.NoReply: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
답변1
마침내 궁금한 사람을 위해 이 상황을 해결할 수 있을 만큼 충분히 알아냈습니다.
- 내 다른 가상 머신 설정은 sudoers 목록에 없는 sudo 권한이 있는 사용자 이름으로 실행됩니다.
- win10 virutalbox 설정에서 deb9.4 guest를 사용하여 이 작업을 시도했지만 동일한 문제가 발생했습니다.
- sudo가 아닌 사용자가 실행할 수 있도록 서비스 스크립트 권한을 변경했고 모든 것이 작동하기 시작했습니다. 상태 출력의 gnome 설정 오류는 새로운 작업 설정에서도 계속 유지되었습니다.
간단히 말해서, 나는 서비스 스크립트 권한 문제 외에는 이것에 대해 많이 알지 못합니다. 누군가의 추가 의견이 전반적인 상황을 명확하게 하는 데 도움이 될 것이라고 생각합니다.