啟動時我有
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 將無法重新啟動服務。