LoginSignup
5
2

More than 3 years have passed since last update.

Capybara利用時に発生した「sending SIGTERM to all processes」

Posted at

現象

Capybaraを利用するジョブを作成し、画面でボタン押下時にそのジョブを呼び出そうとしていた。
railsコンソールからジョブを呼び出した時は正常に処理が終了するが、画面からボタン押下してジョブを呼び出した場合には、webページアクセス(Capybara::Session#visit)のタイミングで以下のようなエラーが発生し、処理が中断してしまう。

08:20:32             | exited with code 0
08:20:32 system      | sending SIGTERM to all processes
08:20:32 web.1       | terminated by SIGTERM
08:20:32 web.1       | terminated by SIGTERM
08:20:32 web.1       | terminated by SIGTERM
08:20:32 webpacker.1 | terminated by SIGTERM

ログがこれだけ。

環境

  • ruby 2.5.3
  • rails 5.2.3
  • Capybara 3.29.0

※ foremanを利用して、railsとwebpackerをdockerコンテナ上で起動している。

原因

foremanが、Capybara::Session#visitのタイミングで、同時起動するプロセスを全てkillしていた。

対応

foremanを利用する開発環境だけの事象ということがわかったため、Dockerfile上でforemanを利用しないように修正することで対応。

CMD ["bundle", "exec", "foreman", "start", "-f", "Procfile.dev"]

CMD ["bundle", "exec", "rails", "s", "-b", "0.0.0.0"]
5
2
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
5
2