寝ないでXephyrを始める方法

寝ないでXephyrを始める方法

目標は、スクリプトからXepyrを起動することです。最も広く使用されている方法は次のとおりです。

Xephyr :4 &
sleep 1  # or sleep 2
launch_your_program_here

ここで何が起こるのか見てみましょう。まず、残念ながら、Xephyrは自分でデーモン化できないため、非同期で始める必要があります(&)。まあ、いつ初期化されるかわからないので、初期化するのに1~2秒ほど時間をかけます。これはとてもハッキーな感じです。これをより迅速かつ確実に行う方法は?

答え1

これがxinitがすることだ。ファイルを生成できますyour_xinitrc。 Xephyrが初期化された後のコマンドがyour_xinitrc実行されます。

xinit your_xinitrc -- /usr/bin/Xephyr :4

実行するXサーバーがX自体ではない場合は、そのサーバーへの絶対パスを指定する必要があります。man xinit詳細より。すべてのコマンドを終了すると、your_xinitrcxinitはXephyrを終了します。

答え2

考えられる解決策は次のとおりです。

Xephyr :4
inotifywait --timeout 9 /tmp/.X11-unix/
launch_your_program_here

/tmp/.X11-unix/2行目は、Xephyrが独自の初期化を完了したときに発生するファイルシステムの変更を待たないようにします。

関連情報