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 pythonmẫ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 killlệnh cho từng đối số đầu vào (PID).Nếu bạn không quen với xargslệ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 killlệnh cho mỗiPID