web-dev-qa-db-ja.com

Pkill -fはプロセスの強制終了には機能しません

私はこのプロセスを実行しています:

342 pts/2    T    0:00 sh -c Sudo screen /usr/bin/python /usr/bin/btdownloadcurses "http://zoink.it/torrent/732A4A9B54B7E3A916C2835D936D985942F65A6D.torrent" --display_interval 20 --saveas "/srv/"
343 pts/2    T    0:00 Sudo screen /usr/bin/python /usr/bin/btdownloadcurses http://zoink.it/torrent/732A4A9B54B7E3A916C2835D936D985942F65A6D.torrent --display_interval 20 --saveas /srv/
344 pts/2    T    0:00 screen /usr/bin/python /usr/bin/btdownloadcurses http://zoink.it/torrent/732A4A9B54B7E3A916C2835D936D985942F65A6D.torrent --display_interval 20 --saveas /srv/

私は走ろうとしました:

pkill -f http://zoink.it/torrent/732A4A9B54B7E3A916C2835D936D985942F65A6D.torrent

しかし、プロセスはまだ実行中です。
http://zoink.it/torrent/732A4A9B54B7E3A916C2835D936D985942F65A6D.torrent 」を含むプロセスを強制終了するにはどうすればよいですか?


以下のように編集された質問:

ps ax | grep 'Momomoko.E01.140011.HDTV.H264.720p.mp4'

上記の文字列を含むすべてのプロセスを強制終了したい。

上記の行を実行しようとすると、3つの結果が返されます。

  342 pts/2    T    0:00 sh -c Sudo screen /usr/bin/python /usr/bin/btdownloadcurses "http://zoink.it/torrent/732A4A9B54B7E3A916C2835D936D985942F65A6D.torrent" --display_interval 20 --saveas "/srv/Momomoko.E01.140011.HDTV.H264.720p.mp4"
  343 pts/2    T    0:00 Sudo screen /usr/bin/python /usr/bin/btdownloadcurses http://zoink.it/torrent/732A4A9B54B7E3A916C2835D936D985942F65A6D.torrent --display_interval 20 --saveas /srv/Momomoko.E01.140011.HDTV.H264.720p.mp4
  344 pts/2    T    0:00 screen /usr/bin/python /usr/bin/btdownloadcurses http://zoink.it/torrent/732A4A9B54B7E3A916C2835D936D985942F65A6D.torrent --display_interval 20 --saveas /srv/Momomoko.E01.140011.HDTV.H264.720p.mp4

この行を実行するにはどうすればよいですか。

ps ax | grep 'Momomoko.E01.140011.HDTV.H264.720p.mp4'

..with php、およびkill -9すべての一致するプロセス?

14
Lim zhen xiang

代わりにkillコマンドを使用してみてください

kill -9 <pid>

それは確かに機能します。私が自分で試したので、いつもとても便利です。

スクリプトファイルで次を使用し、killコマンドでforループを実行します。

ps|grep torrent|cut -f1 -d' '

私のシステムからの正確な作業コピーとして、以下に示すようにこのforループのように;

for p in `ps|grep torrent|cut -f1 -d' '`; do
   kill -9 $p
done

これが最終的にお役に立てば幸いです。

15
Skynet

ご覧のとおり、プロセスはscreenコマンドで実行されています。

sh -c Sudo screen /usr/bin/python
Sudo screen /usr/bin/python
screen /usr/bin/python

このため、使用したコマンドでプロセスをkillできません。

プロセスを強制終了するには、まずプロセスのPIDプロセスIDを検索してから、PIDを指定してkillコマンドを使用します。お気に入り

$ **kill -9 342**

また、プロセスリストから見て、同じプロセスを何度も異なる権限で開始したことがわかります。したがって、必要なものを除いて、すべてを殺すことをお勧めします。

EDIT:この単一のコマンドで十分です。

$ ps ax | grep 'Momomoko.E01.140011.HDTV.H264.720p.mp4' | awk -F ' ' '{print $1}' | xargs Sudo kill -9

以下がその機能です。

  1. ps ax:プロセスを一覧表示します
  2. grep:必要なプロセス名のgrep
  3. awk:grepの出力からプロセスのPIDのみを取得する
  4. xargs Sudo kill -9:xargsはkillコマンドに1つずつPID番号を渡します
8
Santosh A

そのゾンビプロセスをターミナルで開いている場合は、Ctrl+zそれは、ほとんどのシェルでプロセスをバックグラウンドで実行させ、次のようなものを出力します:

[1]  + 69880 suspended  someprocess

次に、実際にそれを殺すことができます:

kill -9 69880

サスペンド時に表示されたものと同じID。

1
erandros