2014-11-13 17 views
5

Tôi có quá trình này chạy:pkill -f không làm việc cho quá trình giết

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/ 

tôi đã cố gắng để chạy:

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

Nhưng quá trình này vẫn chạy.
Làm cách nào để buộc giết các quá trình có chứa: "http://zoink.it/torrent/732A4A9B54B7E3A916C2835D936D985942F65A6D.torrent"?


Câu hỏi như thay đổi nội dung dưới đây:

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

tôi muốn giết tất cả các quá trình có chứa các chuỗi trên.

Tôi cố gắng chạy dòng trên, và nó sẽ trả về kết quả ba:

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 

Làm thế nào để chạy dòng này:

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

..with php, và kill -9 tất cả các quy trình phù hợp?

Trả lời

0

Cố gắng sử dụng kill lệnh thay

kill -9 <pid> 

Nó sẽ làm việc cho chắc chắn, vì tôi đã thử nó bản thân mình và rất tiện dụng mọi lúc.

Sử dụng sau đây trong một tập tin kịch bản sau đó chạy vòng lặp for với kill lệnh,

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

như thế này cho vòng lặp như hình dưới đây, như bản sao làm việc chính xác từ hệ thống của tôi;

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

Tôi hy vọng điều này sẽ giúp bạn cuối cùng.

+0

Tôi đã chỉnh sửa câu hỏi của mình, cảm ơn :) –

+0

@Limzhenxiang kiểm tra lại, tôi đã cập nhật câu trả lời theo yêu cầu mới của bạn. – Skynet

5

Như bạn có thể thấy, quá trình đang được chạy với lệnh màn hình.

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

Do đó, bạn không thể kill quá trình này bằng lệnh bạn đã sử dụng.

Để hủy quá trình, trước tiên hãy tìm kiếm ID quá trình PID của quy trình và sau đó sử dụng lệnh kill bằng PID. Giống như

$ **kill -9 342** 

Cũng nhìn từ danh sách quy trình của bạn, có thể thấy rằng bạn đã bắt đầu quá trình này nhiều lần với sự cho phép khác. Vì vậy, tôi đề nghị bạn giết tất cả ngoại trừ một trong đó là cần thiết.

EDIT: Lệnh duy nhất này sẽ đủ;

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

Dưới đây là những gì nó làm:

  1. ps ax: liệt kê quá trình
  2. grep: grep cho tên quá trình requred
  3. awk: để có được duy nhất của PID của quy trình từ grep ouput
  4. xargs sudo kill -9: xargs sẽ chuyển từng mã một số PID để tiêu diệt lệnh
+0

Tôi đã chỉnh sửa câu hỏi của mình –

+0

Tôi không thấy bất kỳ 'chỉnh sửa' chính nào ngoại trừ việc bao gồm thẻ' kill-process' –

+0

xin lỗi, vui lòng kiểm tra lại. Tôi chỉ cần thêm bản chỉnh sửa của mình –

Các vấn đề liên quan