Hướng dẫn kill process trên Linux

kill process

Thỉnh thoảng bạn sẽ gặp phải một số vấn đề với ứng dụng khi mà những process này không có phản hồi. Đôi khi đóng ứng dụng hay thậm chí là khởi động lại ứng dụng đó cũng không có tác dụng gì cả. Trong những trường hợp như vậy, sự lựa chọn đầu tiên chúng ta thường nghĩ đến ở đây là restart lại hệ thống – có thể dẫn đến việc tốn thời gian để xử lý, và trong một số trường hợp, việc làm này là không thể chấp nhận được bởi hệ thống đang chạy những dịch vụ quan trọng. Có một số cách khá hữu ích khác được sử dụng để chấm dứt vấn đề này – chính là terminate process mà không cần phải restart lại hệ thống. Trong bài viết này, mình sẽ giải thích cách để kill process trong hệ thống Linux với GUI và command line.

Lưu ý: trong bài viết này mình sẽ giải thích và thực hiện các câu lệnh chạy trên hệ điều hành Ubuntu 20.04 LTS.

Sử dụng System Monitor

Gnome System Monitor là tiện ích GUI được tích hợp sẵn trên hệ điều hành Ubuntu có thể được sử dụng để kill process trên hệ điều hành Linux. Nó cho phép chúng ta dừng một process và tiếp tục chạy process đó với tùy chọn Continue. Tùy chọn End cho phép chấm dứt một process một cách an toàn trong khi đó tùy chọn Kill sẽ ép process đó phải chết bất chấp.

Nếu System Monitor không được cài đặt trên hệ thống của bạn, bạn có thể cài đặt nó bằng lệnh sau đây:

$ sudo apt-get install gnome-system-monitor

Để khởi động System Monitor, tìm kiếm nó trong phần search bar. Sau đó kết quả sẽ được hiển thị như sau, lúc này bạn chỉ cần nhấn vào icon để mở nó lên thôi.

system monitor

Trong cửa sổ System Monitor, bạn sẽ thấy một danh sách các process đang chạy trên hệ thống. Để kill một process, click chuột phải vào nó, và sau đó chọn Kill. Nó sẽ kill những process được lựa chọn ngay lập tức.

kill process with system monitor

Kill process bằng phím tắt trên terminal

Command line trên linux có một số phím tắt khá hữu ích. Trong đó, có một số phím tắt có thể được sử dụng để kill một process đang chạy.

Ctrl+C: nó sẽ gửi SIGINT để chấm dứt process đang chạy.

Ctrl+Z: nó sẽ gửi SIGSTP để tạm dừng một ứng dụng và chạy nó ở chế độ background. Tuy nhiên, nó không chấm dứt process. Để xem các process bị dừng, bạn có thể sử dụng lệnh jobs. Sử dụng lệnh fg để đưa process trở thành foreground.

Ctrl+\: nó gửi SIGQUIT để chấm dứt process. Nó cũng tạo ra một core dump file – được sử dụng để debug process.

Kill process sử dụng lệnh kill

Có một số dòng lệnh khá hữu ích được sử dụng để kill process trên hệ thống Linux như là kill, pkill và killall.

Để tìm những process nào hiện đang chạy trên hệ thống, bạn có thể sử dụng lệnh ps với cờ -A để xem.

$ ps –A

Nó sẽ liệt kê tất cả các process đang chạy trên hệ thống của bạn.

Kill

Lệnh kill có thể được dùng dđể kill process đang chạy trên hệ thống Linux. Được sử dụng đi kèm với PID – là id của process sẽ bị kill.

Để tìm ID của process đang chạy, bạn có thể dùng lệnh ps -A và truyền vào pipe vào lệnh grep để tìm chính xác process ID của một process cụ thể.

$ ps –A | grep <processname>

Ví dụ: Để tìm process ID của chương trình FireFox đang chạy, bạn có thể sử dụng lệnh sau:

$ ps –A | grep firefox

Một khi bạn đã thấy PID của process cụ thể nào đó, bạn có thể kill nó như sau:

$ kill PID

Lệnh kill sẽ gửi tín hiệu SIGTERM tới PID cụ thể được yêu cầu chấm dứt sau khi thực hiện các hoạt động dọn dẹp cần thiết.

Trong một số trường hợp, chạy lệnh kill có thể sẽ không thể chấm dứt một process được. Trong trường hợp này, bạn cần phải sử dụng thêm tùy chọn “-9” nữa thì mới kill triệt để được process.

$ kill -9 PID

Sử dụng tùy chọn -9 với lệnh kill sẽ gửi tín hiệu SIGKILL được yêu cầu xử lý chấm dứt process ngay lập tức mà không có bất kỳ hoạt động dọn dẹp nào được diễn ra.

Pkill

Tương tự như lệnh kill, pkill cũng gửi tín hiệu SIGTERM cho phép chấm dứt một process nào đó không có phản hồi. Tuy nhiên, có một số lợi ích  của pkill so với lệnh kill – chính là bạn sẽ không cần phải cung cấp PID của một process nữa. Thay vì vậy, bạn chỉ cần cung cấp từ khóa khớp với lại process cần kill.

$ pkill <keyword>

Ví dụ, để kill chương trình FireFox, bạn chỉ cần gõ lệnh như sau là cũng kill được process rồi.

$ pkill firef

Ở lệnh trên, nó sẽ kill hết tất cả các process có tên khớp với từ khóa như đã đề cập bên trên.

Với pkill, bạn cũng có một số tùy chọn để kill các process đang chạy bởi một người dùng cụ thể.

$ pkill –u <username> < keyword>

Hãy cẩn thận khi sử dụng tùy chọn này, bởi nếu bạn không chỉ định từ khóa của process, tất cả các process với username được chỉ định sẽ bị kill hết.

Killall

Lệnh killall cũng tương tự như pkill ngoại trừ việc nó cần tên process đầy đủ chính xác luôn thay vì là khớp từ khóa.

Để sử dụng lệnh killall để chấm dứt tất cả process và các process con của chúng với một cái tên process cụ thể, sử dụng cú pháp như sau:

$ killall <prcoessname>

Ví dụ:

$ killall firefox

Kết luận

Trong bài viết này, bạn đã biết được nhiều cách để kill process trong Linux rồi đấy. Nên nhớ, sử dụng những lệnh này cẩn thận vì khi kill process sẽ dẫn đến việc mất mát dữ liệu. Ngoài ra, kill process sai cách có thể gây ảnh hưởng đến những yếu tố khác trên hệ thống nữa đấy.

5/5 (1 Review)

Để lại một bình luận

Please enter your comment!
Please enter your name here