この質問は私を狂わせます。時々、なぜこれが起こるのかわかりません。完全に点灯して消えたという感じがします。
/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
マルチタスクオペレーティングシステム、間違いなくマルチプロセッサシステムがあり、起動時にロードが不確実です。そのような競争条件を回避/防止するための措置を講じない限り、競争条件は存在します。
追加読書
- ジョナサンデボインポラード(2018)。
/etc/rc.local
それは過去の仕事です。。一般的な答え。