起動時に
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
およびオプションを使用しないでください。そうしないと、x11vnc はログアウト後にプロセスを強制終了できず、systemd はサービスを再起動できなくなります。-forever
x11vnc