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

関連情報