次のように、現在のXセッションから別のXセッションを開始しました。
xinit xterm -- :128
Xセッションはディスプレイから開始して実行され、すべてが正常です:128
。xterm
しかし、画面:0
(デフォルト)に戻り、screencap
新しいディスプレイを試してみました。
$ xwd -root -screen -out screencap.xwd -display :128
結果ファイルは大きな黒い長方形です。私もimagemagickを使ってみましたが、import
役に立ちませんでした。何が間違っていますか?
答え1
良いscrot
これを行うことができ、テストされました。
xinit thunar -- :128
DISPLAY=:128 scrot
私に正しいスクリーンショットを与えました。
(しかし残念ながらscrotはしばらく維持されませんでした)
答え2
ttyがフォーカスを失うと、xはCPU時間とRAMを節約するために空白の画面を表示し、再描画を停止します。この機能を無効にする方法はないようです。
Xvfb
、「X Virtual Framebuffer」は、設計および目的の一部としてこれらの動作を含まない特別な実装です。
新しい「一般」xsessionを起動する代わりに、仮想フレームバッファでクライアントソフトウェアを実行します。
xvfb-run <client software> --server-args="-screen 0 [width]x[height]x[bitdepth]"
そして、次のようにスクリーンショットを撮ります。
xwd -root -d :99 # (the default for xvfb)
ディスプレイが端末に縛られていないため、ユーザーがディスプレイを見るのが難しいことがあることに注意してください。