LightDM과 GNOME 데스크탑이 모두 구성되어 실행되는 X 서버가 있습니다. X 서버에 액세스하기 위해 x11vnc를 설치했습니다. GNOME에서 터미널을 열고 를 실행했습니다 x11vnc
. 이렇게 하면 VNC를 통해 실제 X 서버에 액세스할 수 있지만 자동으로 시작하고 싶습니다. LightDM에 로그인한 후 start를 입력할 수 있지만 VNC에 로그인할 때 LightDM 프롬프트를 볼 수 있도록 LightDM이 시작된 직후에 시작하는 것을 선호합니다 x11vnc
. ~/.xprofile
어떻게 해야 하나요?
답변1
x11vnc 서버 LightDM을 시작하기 위해 systemd 서비스를 추가하면 After=
됩니다 . lightdm
불쾌한 XAuthority 오류가 발생하지 않도록 서비스가 사용자로 실행되고 있는지 확인하십시오 No protocol specified
.
/etc/systemd/system/[이메일 보호됨]:
[Unit]
Description=Remote desktop service (VNC)
After=display-manager.service
[Service]
Type=simple
User=lightdm
ExecStart=/usr/bin/x11vnc -display %i
Restart=always
RestartSec=3
[Install]
WantedBy=graphical.target
After=display-manager.service
이 서비스를 시작하기 전에 디스플레이 관리자(LightDM)를 실행해야 함을 systemd에 알립니다.
Type=simple
프로세스가 포크되지 않았으므로 ExecStart
VNC 서버의 수명 동안 다음 명령이 계속 실행됨을 나타냅니다.
User=lightdm
LightDM 로그인 프롬프트 중에 X 클라이언트를 실행하는 것이 목적인 시스템 사용자인 사용자가 다음 프로세스를 ExecStart
실행해야 함 을 나타냅니다. lightdm
이 사용자는 X 서버를 소유하므로 로그인 프롬프트에서 응용 프로그램을 실행하려면 이 사용자로 응용 프로그램을 실행해야 합니다.
ExecStart=/usr/bin/x11vnc -display %i
서비스가 활성화될 때 실행되는 명령으로, x11vnc
디스플레이에서 시작을 의미하며 %i
서비스를 시작할 때 "@" 기호 뒤에 오는 모든 항목을 나타냅니다.
Restart=always
서비스가 시작되지 않을 때마다 다시 시도하십시오.
RestartSec=3
재시도할 때마다 3초 동안 대기함을 나타냅니다.
WantedBy=graphical.target
systemd가 그래픽 시스템(레거시 런레벨 5)을 시작할 때마다 서비스가 실행됨을 나타냅니다.
장치를 로드하려면(systemd가 장치를 "보도록" 설정) 다음 명령을 실행하십시오.
# systemctl daemon-reload
활성화하려면(부팅 시 시작되도록) 다음 명령을 실행하세요.
# systemctl enable x11vnc@<your-$DISPLAY-here>
<your-$DISPLAY-here>
VNC 액세스 권한을 부여하려는 X가 나타나는 위치(일반적으로 :0
)
를 시작하려면 다음 명령을 실행하세요.
# systemctl start x11vnc@<your-$DISPLAY-here>
에 대해서는 위와 동일합니다 <your-$DISPLAY-here>
.
"@" 뒤에 다른 디스플레이를 전달하면 동일한 단위 파일에서 여러 개의 독립적인 서비스를 실행할 수 있습니다. 예를 들어 X 모니터 :0
, :1
, :2
포트 5900
, 5901
및 5902
, x11vnc@:0
및 에서 x11vnc@:1
여러 VNC 서버를 실행할 수 있습니다 x11vnc@:2
.