📝

rails consoleが応答しなくなったらspringをkillしよう

2021/01/06に公開

問題

最近開発作業中に、突然

bundle exec rails c

が応答が返ってこなくなる事態に遭遇してしまいました。

この状態の場合、CTRL+Cでプロセスを強制終了しようとしてもやはり止まりません。

解決法:springデーモンをkillする

springというプロセスがrails cを実行するときに走っているプロセスがいるのですが、これが正常に終了していませんでした。

通常は、rails serverやrails consoleを立ち上げて終了した後にプロセスも終了するのですが、まれに終了しない場合があるようです。

実際にspringデーモンをkillする方法

ps axww | grep spring

でspringのプロセスが生きていることを確認する。

kill -9 [先程確認したspringのプロセスのPID]

kill -9 でspringプロセスを強制終了させることで、rails cが動かせるようになるかと思います。

springを利用せずにrailsコンソールを立ち上げる方法

DISABLE_SPRING=1 bundle exec rails c

参考

spring(github)

Discussion