killコマンドが機能しない????
devcontainerでgolangを使ってweb開発を行っているときに事が起きました.
デバッグ中に何度かサーバの実行と停止を繰り返していたところ, 停止ができなくなり, psコマンドでIDを確認後強制的に停止を図ったのですが, 何度killコマンドを叩いても停止することができませんでした.
vscode ➜ /workspaces/xxx (main) $ ps
PID TTY TIME CMD
421 pts/0 00:00:00 bash
14093 pts/0 00:00:00 go
14214 pts/0 00:00:00 main
15416 pts/0 00:00:00 ps
vscode ➜ /workspaces/xxx (main) $ kill 14093
vscode ➜ /workspaces/xxx (main) $ ps
PID TTY TIME CMD
421 pts/0 00:00:00 bash
14093 pts/0 00:00:00 go <----killされていない!
14214 pts/0 00:00:00 main
15514 pts/0 00:00:00 ps
解決方法
この問題の対処法としてはkillコマンドに-9オプションを付け加えることでkillすることが来ます.
kill -9 <PID>
kill -9 コマンドの -9 は、シグナル番号 9(SIGKILL)を指定しています。これは、プロセスを強制終了するためのシグナルです。通常の kill コマンド(デフォルトではシグナル 15 (SIGTERM) を送信)はプロセスに終了を要求しますが、プロセスが応答しない場合があるみたいです。
SIGKILL はプロセスに対して強制的に終了を命令し、プロセスがこのシグナルを無視することはできません。以下に具体的なコマンドを示します。