
死なない迷惑なプロセスがあります。
ps -A | grep "nzbget"
私にしてください:
11394 pts/3 00:00:00 nzbget
私が試した場合:
pkill nzbget (or 11394)
...答えはありません。プロセスはまだ進行中で、上部には次の内容が表示されます。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
11394 asystem+ 20 0 125448 6244 4984 T 0.0 0.1 0:00.00 nzbget
"nzbget -s"を使用してnzbgetを実行し、実行後にこれを実行すると(そして停止しようとすると)[ソケットバインディングに失敗しました]エラーが発生し、再起動するだけです。
再起動せずにどのように終了できますか?
答え1
プロセスが停止すると*(T
のステータス出力を参照top
)、信号処理はまったく実行できません。したがって、プロセス相互作用を必要としない信号を使用する必要があります。あなたの場合SIGKILL
(9)は以下のようになります。
kill -9 11394
何らかの理由でプロセスのコアダンプを取得したい場合(そしてシステムがそれに対して設定されている場合)のSIGSEGV
代わりに(11)を使用できます。また、プロセス相互作用は必要ありません。
*追跡されたプロセスはシグナルを処理できなければならず、これがプロセスを停止する可能性があるため、ここで停止すると仮定します。
答え2
kill -9 11394
次のコマンドを呼び出すineleganceを使用してプロセスを完全に終了できます。
~からLinux/UNIX コマンドラインで最も重要な 3 つの「kill」シグナル:
カーネルはプロセスに知らせずにプロセスを解放します。このような不正確なシャットダウンはデータを失う可能性があります。これは、最も「最も難しく」「最も粗く」、最も安全ではないキルシグナルであり、一見できないように見えるのを止めるためにのみ使用できます。
答え3
試してみることができるさまざまなシグナルがあり、他の人がそれをリストすることを確信しています。しかし、私が見つけた最も効果的な信号は次のとおりですHUP
。
kill -hup 11394
私はアプリケーションが他の信号に応答しない多くの場合、これが機能することを発見しました。失敗した場合はこれを行うことができますkill -9
。ただし、プラグを抜くだけでアプリケーションが整理されないため、副作用がある可能性があります。
答え4
Xアプリケーションの場合、xkillを使用してコマンドラインの終了に応答しないときにアプリケーションウィンドウをクリックすると幸運でした。