로그아웃할 때 x11vnc가 종료되는 것을 어떻게 막나요?

로그아웃할 때 x11vnc가 종료되는 것을 어떻게 막나요?

부팅시 나는

sudo x11vnc -xkb -noxrecord -forever -noxfixes -noxdamage -display :0 -auth /var/run/lightdm/root/:0 -usepw

init.d를 통해 실행

작동하고 VNC 클라이언트를 사용할 때 로그인 프롬프트가 표시됩니다. 그러나 로그아웃하면 VNC 서버가 종료되고 SSH를 통해 다시 시작해야 하는 경우 작동해야 한다고 생각되는 스크립트를 찾아 수정했습니다.

#!/bin/bash

if pgrep "x11vnc"
then
    echo "Running"
else
    echo "Stopped"
    sudo x11vnc -xkb -noxrecord -forever -noxfixes -noxdamage -display :0 -auth /var/run/lightdm/root/:0 -usepw
fi

그리고 그것은 그렇습니다 (그러나 내 cron 작업을 실행하면 /usr/local/bin/testvnc에 있습니다:

* * * * * /usr/local/bin/testvnc

cat var/log/syslog | grep vnc 그러나 vnc를 시작하지 않습니다.

답변1

Kubuntu 16.04.1에서도 같은 문제가 발생했지만 귀하의 스크립트는 나에게 해결책에 대한 아이디어를 제공했습니다.

systemd용 서비스 파일을 만듭니다.

sudo nano /etc/systemd/system/x11vnc.service

이것은 내 x11vnc.service파일입니다:

[Unit]
Description=Start x11vnc at startup.
After=multi-user.target display-manager.service

[Service]
Type=simple
ExecStart=/bin/bash -c '/usr/bin/x11vnc -auth /var/run/sddm/* -noxdamage -norepeat -rfbauth /home/x11vnc/passwd -display :0 -rfbport 5900 -shared -o /var/log/x11vnc.log'
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

실행 권한을 설정합니다.

sudo chmod u+x /etc/systemd/system/x11vnc.service

systemd에서 스크립트를 다시 로드하고 활성화합니다.

sudo systemctl daemon-reload
sudo systemctl enable x11vnc.service

중요한:명령 에서 -loop및 옵션을 사용하지 마십시오. 그렇지 않으면 x11vnc가 로그아웃 후 프로세스를 종료할 수 없고 systemd가 서비스를 다시 시작할 수 없습니다.-foreverx11vnc

관련 정보