追加読書

追加読書

この質問は私を狂わせます。時々、なぜこれが起こるのかわかりません。完全に点灯して消えたという感じがします。

/etc/rc.local起動時に実行されるシェルスクリプトがあります。私はUbuntu x64 19.10...価値のためにDigital Oceanを介してCloud Dropで実行しています。

長く言えば短く...

私のスクリプトは次のように始まります...

echo "Starting virtual display session..."
export DISPLAY=:0
Xvfb :0 -screen 0 640x360x16 & 
DISPLAY=:0.0 fluxbox &
sleep 1
x11vnc -display :0.0 -usepw -forever -bg

これらすべてはほとんどの場合に機能します。

しかし、fluxbox時にはロードされない場合もあります。 Xディスプレイセッションで終了しますが、ウィンドウマネージャはありません。走るとps aux | grep fluxbox何も見えません。

問題は、このようなことが時々起こるということだ。システムを再起動すると、ほとんどがロードされますが、プロセスがまったく起動しないことがあります。

更新:これが発生すると、次のエラーが発生することがわかります。

Error: Couldn't connect to XServer:0.0

Fluxboxプロセスの起動時にディスプレイのエクスポートを設定し、ディスプレイを設定すると、なぜこれが起こりますか?

誰でもどんなアイデアがありますか?

注:常に実行されるxvfbを介した仮想フレームバッファのみがあります。DISPLAY=:0

ありがとうございます!

答え1

Xvfb:0 - スクリーン0 640x360x16&
DISPLAY=:0.0 フラックスボックス&

これはとても簡単です。両プロセスを分岐して並列に実行した。プログラムがXサーバーに接続しようとしたXvfbときにプログラムの初期化が完了しませんでした。fluxboxマルチタスクオペレーティングシステム、間違いなくマルチプロセッサシステムがあり、起動時にロードが不確実です。そのような競争条件を回避/防止するための措置を講じない限り、競争条件は存在します。

追加読書

関連情報