Để kill nhiều process (tiến trình) trên Linux/Unix thay vì sử dụng 1 command và kill 1 lần, bạn có thể phối hợp nhiều command thành 1 command để thực hiện chỉ với 1 lần. Sau đây vinasupport.com đã tổng hợp 1 số cách giúp bạn thực hiện điều này.
Vì sao cần kill nhiều process?
- Do ứng dụng bi treo và ứng dụng đó sử dụng nhiều process trên Linux/Unix
- Bạn lập trình và chạy nhiều command 1 lúc với cùng 1 nhiệm vụ giống nhau
Cách kill nhiều process trên Linux/Unix
Mình lấy ví dụ về Samba (Ứng dụng chia sẻ file với máy Windows Client) trên HDH CentOS 7. Khi chạy samba nó tạo ra 3 process như hình bên dưới.
Vậy để kill hay stop hoàn toàn process của Samba ta phải thực hiện 1 loạt command như sau:
[[email protected] ~]$ ps -A | grep mbd [[email protected] ~]$ kill -9 6097 6101 6125
Như vậy chúng ta phải sử dụng 2 command và phải nhớ và gõ lại Process ID của Samba. Chú ý rằng Process ID này không cố định mà thay đổi mỗi lần Samba khởi động.
Thay vì vậy có 1 số cách giúp chúng ta dễ dàng kill nhiều process một lúc, như command bên dưới:
[[email protected] ~]$ kill -9 `ps -A | grep 'mbd' | grep -v grep | awk '{print $1}'`
Với ‘mbd’ là chuỗi ký tự trong tên process Samba. Trường hợp kill process của firefox thì thay bằng ‘firefox’
Một số cách khác các bạn có thể tham khảo:
1. Sử dụng vòng lặp for
[[email protected] ~]$ for pid in $(ps -ef | awk '/some search/ {print $2}'); do kill -9 $pid; done
2. Sử dụng command killall
[[email protected] ~]$ killall firefox
Nếu có cách nào hay thì các bạn hãy chia sẻ bằng cách comment bên dưới nhé!
Nguồn vinasupport.com