LoginSignup
1
6

More than 5 years have passed since last update.

docker で xvfb-run しようとしたときに Xvfb failed to start というエラーが出てしまう現象の解決方法

Last updated at Posted at 2017-02-06

症状

docker run 時のコマンドに xvfb-run bundle exec rake resque:work を指定して実行しようとしたが、フリーズしてしまい bundle exec rake resque:work が行うはずの処理に進まないか、xvfb-run: error: Xvfb failed to start というエラーメッセージが出て異常終了してしまう問題が発生した。

xvfb-run -e /dev/stdout bundle exec rake resque:work としてデバッグしてみたところ、後者のパターンでは下記のようなログが出ているようだった。

(EE) 
Fatal server error:
(EE) Server is already active for display 99
        If this server is no longer running, remove /tmp/.X99-lock
        and start again.
(EE)

解決方法

このコメントを参考にして、なぜか生成されてしまうロックファイルを削除するようにすると、うまく動くようになった。
(issue に書いてあるけど、イメージビルド時に削除してもダメらしい。)

bash -c "rm /tmp/.X99-lock || echo 'Lock not found, continuing normal setup' && xvfb-run bundle exec rake resque:work"

Xvfb むずかしくていつもはまるとなかなか直せないので、もう少し詳しくなってみたい。

参考資料

1
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
6