Làm thế nào tôi có thể giết từ bash tất cả các quy trình python ngoại trừ một tập lệnh python. (Tôi biết tên của nó, nhưng đôi khi nó có thể được thay đổi).
Tôi cần loại pkill -f "python"
nhưng không bao gồm kịch bản cụ thể python.
Xin tư vấn.
Làm thế nào tôi có thể giết từ bash tất cả các quy trình python ngoại trừ một tập lệnh python. (Tôi biết tên của nó, nhưng đôi khi nó có thể được thay đổi).
Tôi cần loại pkill -f "python"
nhưng không bao gồm kịch bản cụ thể python.
Xin tư vấn.
Câu trả lời:
ps aux |grep python |grep -v 'pattern_of_process_you_dont_want_to_kill' |awk '{print $2}' |xargs kill
Cập nhật: giải thích từng bước theo yêu cầu trong các bình luận
ps aux |grep python
- hiển thị tất cả các quy trình phù hợp với python
mẫu grep -v 'pattern_of_process_you_dont_want_to_kill'
- loại trừ quá trình bạn không muốn giết awk '{print $2}'
- hiển thị trường đầu ra thứ hai, đó là PID. xargs kill
- áp dụng kill
lệnh cho từng đối số đầu vào (PID).Nếu bạn không quen với xargs
lệnh, tôi khuyên bạn đừng lo lắng nếu bạn không hiểu nó ngay lập tức. Nó có thể xuất hiện khá khó khăn lần đầu tiên. Tôi đã đăng ví dụ rất đơn giản về cách sử dụng của nó, bạn có thể google để biết thêm.
awk '{print $2}'
- in trường ps
đầu ra thứ hai , trong trường hợp hiện tại là PID
. xargs
áp dụng kill
lệnh cho mỗiPID