Debianシステムの特定のTTYでXが実行されているかどうかを確認し、その場合はディスプレイ番号(DISPLAY値)を検索できますか?
編集:TTYは非アクティブコンソールであり、必ずしもアクティブコンソールである必要はありません。機能を実装しようとしています。
Display()
{
local tty="$1"
...
}
ベストアンサー1
プロセス名で検索できます。次に、プロセスで開かれたUnixドメインソケット(抽象的かもしれません)を見て、表示された番号を決定します。
pid=$(pgrep -xt "$tty" Xorg) &&
lsof -aUp "$pid" | sed '\|.*X11-unix/X\([0-9]\{1,\}\) .*|!d;s//\1/;q'
lsof
rootとして実行する必要があります。
あるいは、コマンドライン引数から表示番号を抽出することもできます(常に存在する場合)。
pgrep -axt "$tty" Xorg | sed -n 's/.*:\([0-9]\{1,\}\).*/\1/p'