Xvfb がディスプレイ :0 で (すでに) 実行されているかどうかを確認するにはどうすればよいでしょうか?

Xvfb がディスプレイ :0 で (すでに) 実行されているかどうかを確認するにはどうすればよいでしょうか?

タイトルがすべてを物語っています。pgrep Xvfb効果は半分しかありません。 表示番号はわかりません。

答え1

何を達成しようとしているのかはわかりませんが、「x display info」を実行すると、X ディスプレイが使用可能かどうかを確認できます。

xdpyinfo -display :0 >/dev/null 2>&1 && echo "In use" || echo "Free"

注意: ディスプレイにアクセスできない場合も、「空き」と報告されます。別の方法としては、/tmp/.X0-lockX サーバーの PID ファイルが含まれているかどうかを確認することです。

コマンドを表示する代わりに、バイナリに一致するプロセスをチェックする方が信頼性の高い方法です。

pids=$(pidof /usr/bin/Xvfb)
if [ -n "$pids" ]; then
    processes="$(ps --format command --no-headers -ww --pid $pids)"
else
    echo "Not running"
fi

ソース:https://github.com/Bumblebee-Project/Bumblebee/blob/master/install-files/common-functions#L112

関連情報