🚔
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