如何阻止 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

它確實(如果我運行它,它在 /usr/local/bin/testvnc 中,但是我的 cron 作業:

* * * * * /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-forever選項x11vnc,否則 x11vnc 將無法在登出後終止進程,並且 systemd 將無法重新啟動服務。

相關內容