Claude Code のエラー

pkill: refusing to run

結論

パターンが Claude Code 自身にも一致するため止められた安全機構。誤爆ではない。

確認した版 Claude Code v2.1.214
確認日 2026年8月21日
文言の照合 Claude Code v2.1.238
最終更新 2026年8月21日
根拠 一次情報で確認

エラー文字列

Claude Code
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 を試す
  • このエラーが出たら、「守られた」と考えてください。 抜け道を探すのではなく、パターンを見直すのが正しい対応です

この手順で直りませんでしたか?

環境を添えて報告いただければ、追加の原因を検証してこのページに反映します。

エラーを報告する