pkill: refusing to run
結論
パターンが Claude Code 自身にも一致するため止められた安全機構。誤爆ではない。
確認した版
Claude Code v2.1.214
確認日
2026年8月21日
文言の照合
Claude Code v2.1.238
最終更新
2026年8月21日
根拠
一次情報で確認
エラー文字列
pkill: refusing to run
何が起きているか
実行しようとした pkill のパターンが、Claude Code のプロセス自身にも一致するため、実行前に止められました。
⚠️ これは不具合ではなく安全機構です。 そのまま実行していれば、Claude Code が自分自身を終了させ、作業中のセッションが失われていました。
なぜ一致してしまうのか
pkill はプロセス名やコマンドラインに対する部分一致で動きます。そのため、意図していないプロセスまで巻き込みます。
| 実行しようとしたパターン | 一致してしまうもの |
|---|---|
pkill node |
Claude Code 本体(Node.js で動いています) |
pkill -f claude |
Claude Code そのもの |
pkill -f "npm run" |
Claude Code が起動した子プロセス |
pkill -f dev |
claude --dev や関連プロセス |
⭐ とくに node が危険です。 開発サーバーを止めるつもりで pkill node と打つと、Claude Code ごと落ちます。
直し方
1. まず何に一致するか確認する(pkill の前に pgrep)
⭐ これが最も重要な習慣です。 pkill は確認なしで殺すため、先に pgrep で対象を見てください。
pgrep -af node
-a はコマンドライン全体を表示します。この一覧に Claude Code が含まれていたら、そのパターンは使えません。
2. パターンを具体的にする
一致範囲を狭めます。
# ❌ 広すぎる
pkill node
# ✅ 実行しているスクリプトまで指定する
pkill -f "node .*vite"
pkill -f "npm run dev"
指定したら、必ず pgrep で確認してから実行してください。
pgrep -af "node .*vite"
3. PID を直接指定する(最も安全)
パターンを使わなければ、誤爆の余地がありません。
pgrep -af "vite"
# 出力から目的の PID を確認して
kill 12345
止まらない場合のみ強制終了します。
kill -9 12345
⚠️ kill -9 は後始末をさせずに終了させます。 一時ファイルやロックが残ることがあるため、まず通常の kill を試してください。
4. ポートから特定する(開発サーバーの場合)
「3000番で動いている開発サーバーを止めたい」なら、ポートから辿るのが確実です。
macOS / Linux
lsof -ti :3000
kill $(lsof -ti :3000)
Windows(PowerShell)
Get-NetTCPConnection -LocalPort 3000 -State Listen |
Select-Object -ExpandProperty OwningProcess |
ForEach-Object { Get-Process -Id $_ | Select-Object Id, ProcessName, Path }
確認してから止めます。
Stop-Process -Id 12345
5. そもそも別の方法で止められないか
プロセスを殺すのは最後の手段です。
| 対象 | 正しい止め方 |
|---|---|
| 開発サーバー | 起動したターミナルで Ctrl+C |
| Docker のコンテナ | docker stop <name> |
| npm スクリプト | 起動元のシェルで停止 |
| systemd のサービス | systemctl stop <unit> |
強制終了はデータの整合性を壊すことがあります。 正規の停止手段があるなら、そちらを使ってください。
再発防止
- ⭐
pkillの前に必ずpgrep -afを実行する。 これだけで、この種の事故はほぼ無くなります pkill nodeを打たない。 開発環境では、Claude Code もエディタも Node.js で動いています- ポート番号が分かっているなら、ポートから PID を特定するのが最も確実です
kill -9を反射的に使わない。まず通常のkillを試す- このエラーが出たら、「守られた」と考えてください。 抜け道を探すのではなく、パターンを見直すのが正しい対応です