私が持っているプロセスをリストするとき:
root @ adam-ThinkPad-T410:〜#ps -e | grepシグナル
11641ポイント/ 000:00:00シグナル
11642ポイント/ 000:00:00シグナル
11643 pts/0 00:00:00シグナル
しかし、私が殺したいとき、私はそのようなプロセスがないという情報を受け取ります:
root @ adam-ThinkPad-T410:〜#killall -9 11641
11641:プロセスが見つかりません
私はLinuxにまったく慣れておらず、少し混乱しています。「kill11641」も試しましたが、それでも運がありません。
killall
には、プロセス名が必要です。例: killall signals
これはそのようなすべてのプロセスを強制終了します。それ以外の場合は、プロセスID(ps
から正しく抽出したもの)を使用する必要があります:kill -9 <PID>
どこ -9
はSIGKILL
であり、かなり失礼で、通常はkill <PID>
で十分です(ただし、そのセムはあなたのケースでは機能しません)。 man killall
およびman kill
はあなたの友達です。
Grepコマンドは、別のコマンドからパイプすると、自身をプロセスとして返します。 process 11641
はgrepプロセスであり、本質的に終了しています(そして、終了しようとしている方法で強制終了することはできません)。
これを試してください:
ps -e | grep signals | grep -v grep
これにより、基本的にgrepプロセスが結果から削除されます。