🚔
Railsサーバーの強制ストップ法
こちらAmetaです。
先日の記事でも書いたSystemStackErrorが発生した時の事。
無限ループが発生してしまったためサーバーを停止するコマンドrails sを入力する事ができませんでした。
この時にローカルサーバーを強制停止させた方法をまとめておきます。
ステップ
-
ps aux | grep アプリ名でプロセス番号を確認 -
killコマンドでサーバーを強制停止
ps auxコマンド
psはLinux上で動作しているプロセスを確認するためのコマンド。
auxはpsのオプションでそれぞれa,u,xの組み合わせ。
| option | role |
|---|---|
| a | 端末操作のプロセスを表示 |
| u | CPUとメモリの使用率を表示 |
| x | 現在実行しているプロセスのみを表示 |
これにgrep アプリ名を結合し、アプリのプロセス番号を確認。
ユーザー名 **10857** 0.0 1.1 4580080 177732 s001 S+ 10:26AM 0:04.89 puma 3.12.6 (tcp://localhost:3000) [アプリ名]
この場合、"10857"がプロセス番号。
killコマンド
killコマンドにプロセス番号を後述する事でサーバーを終了させます。
この時、オプションの-9を付与すると強制終了させる事ができる。
kill -9 10857
以上の操作でローカルサーバーを強制停止させる事ができました。
SOTD
今回オプションなしでkillコマンドを実行してもサーバーを停止する事ができなかったので強制終了のオプションを試してみました。
無限ループに入ってしまった時の応急処置の1つとして、今後も利用できそう。
References
Discussion