#

Hướng dẫn kill process trong Linux cực nhanh và đơn giản

 19/05/2022 - 15:13 Trịnh Duy Thanh

Cach kill process trong Linux

Một ứng dụng được khởi chạy từ menu ứng dụng hay từ dòng lệnh bất kỳ nào đó, khi bắt đầu sử dụng ứng dụng nó đột nhiên bị ngừng hoạt động, crash hay thiết bị của bạn bị khóa. Lúc này, bạn có thể chạy lại ứng dụng, nhưng thực chất ứng dụng gốc chưa hoàn toàn tắt hẳn.

Bạn cần chấm dứt hẳn tiến trình hoạt động của nó, nhưng không biết phải làm sao? Thật may mắn khi Linux đã hỗ trợ cho người dùng những công cụ cần thiết để loại bỏ đi tiến trình đang lỗi. Để làm điều này đòi hỏi bạn cần hiểu rõ tiến trình hoạt động của từng lớp.

Đăng ký tên miền .VN tại BKHOST

BKHOST đang có chương trình khuyến mãi cực shock cho khách hàng đăng ký tên miền .VN:

  • Giảm ngay 140k.
  • Miễn phí 100% dịch vụ khởi tạo.

Đăng ký ngay:

tên miền .vn giá rẻ

Trong bài viết này, BKHOST sẽ giới thiệu cho bạn công cụ kill process trong linux (có thể áp dụng trên hầu hết các thiết bị và các bản phân phối của Linux). Ok, cùng bắt đầu ngay thôi nào.

Bước 1: Định vị tiến trình

Để chấm dứt một tiến trình hoạt động lỗi của một ứng dụng, bước đầu tiên bạn cần xác định vị trí tiến trình. Bạn có hai lệnh để định vị tiến trình là TopPs.

Trong đó, top là loại công cụ mà hầu hết các quản trị viên nên biết về nó. Nó cung cấp cho người dùng các thông tin cần thiết về tiến  trình đang chạy.

Từ hình bên dưới ta thấy, dòng lệnh khi nhấn vào top sẽ xuất hiện danh sách các tiến trình đang chạy.

dinh vi tien trinh-1
Hình 1: Lệnh Top cung cấp cho bạn thông tin tiến trình đang chạy

Danh sách thông tin của top sẽ mang lại cho bạn nhiều dữ liệu quan trọng. Ví dụ: Trong trường hợp Chrome không phản hồi, theo thông tin của top có thể thấy được Chrome đang chạy với bốn trường hợp của bốn PID3827, 3919, 1076411679. Nhờ vào thông tin này có thể xác định được phương pháp cụ thể để hủy tiến trình.

Tuy top mang đến những thông tin hữu ích, nhưng nó không phải là phương tiện tuyệt đối, đôi khi nó không mang đến cho người dùng những thứ mà họ cần.

Ví dụ: Bạn muốn hủy tiến trình hoạt động của Chrome nhưng lại không muốn xem thông tin của tiến trình theo thời gian thực. Lúc này, top không đáp ứng được buộc bạn phải dùng lệnh khác và có thể sử dụng ps và lọc đầu ra nhờ grep.

ps sẽ cung cấp cho bạn tất cả các danh sách ảnh chụp của tiến trình hoạt động, grep sẽ có nhiệm vụ lọc các mẫu khớp với dòng lệnh.

Ví dụ là liên kết với Chrome. Lệnh này có dạng như sau:

ps aux | grep chrome

Sau đây là các tùy chọn của aux:

  • a = hiển thị tiến trình cho tất cả người dùng
  • u = hiển thị người dùng / chủ sở hữu của tiến trình
  • x = hiển thị các tiến trình không được kết nối với thiết bị đầu cuối

Khi bạn cần tìm các thông tin về các ứng dụng đồ họa thì tùy chọn x là rất quan trọng.

Với lệnh trên, những thông tin mà bạn nhận được sẽ nhiều hơn những gì mà bạn mong muốn để hủy một tiến trình. Đôi khi, nó còn tuyệt vời hơn cả việc sử dụng lệnh top.

dinh vi tien trinh-2
Hình 2: Xác định vị trí nhờ vào thông tin mà ps cung cấp

Bước 2: Hủy tiến trình

Khi đã định vị được vị trí của tiến trình, bây giờ là lúc hủy tiến trình. Hai thông tin sau đây sẽ giúp bạn loại bỏ đi tiến trình đang bị lỗi:

  • Process name: Tên tiến trình
  • Process ID: ID tiến trình

Tiếp theo là xác định lệnh để kết thúc tiến trình. Tại đây có hai lệnh được dùng để kết thúc một tiến trình:

  • Kill: Hủy một tiến trình bằng id
  • Killall: Hủy một tiến trình theo tên.

Từ hai lệnh hủy khác nhau, bạn sẽ gửi đi các tín hiệu khác nhau. Dựa vào tín hiệu bạn gửi đi mà sẽ nhận về kết quả bạn mong muốn từ lệnh hủy.

Ví dụ: Bạn cần khởi động lại tiến  trình, bạn có thể gửi tín hiệu HUP đến lệnh hủy, lúc này lệnh sẽ giúp bạn thực hiệu điều đó một cách hiệu quả.Khi bạn đưa ra các lệnh hủy, bạn sẽ nhận về danh sách tất cả các thông báo mà bạn có thể gửi đi.

huy tien trinh
Hình 3: Một lượng lớn các tín hiệu được cung cấp sẵn

Sau đây là một số tín hiệu được sử dụng phổ biến:

Signal NameSingle ValueEffect
SIGHUP1Hangup
SIGINT2Interrupt from keyboard
SIGKILL9Kill signal
SIGTERM15Termination signal
SIGSTOP17, 19, 23Stop the process

Ngoài ra, bạn có thể sử dụng tên tín hiệu thay vì dùng giá trị tín hiệu. Bây giờ, hãy bắt đầu sử dụng lệnh hủy cùng với tín hiệu để loại bỏ phiên bản Chrome mà bạn muốn hủy. Cấu trúc lệnh này như sau:

kill SIGNAL PID

Trong đó SIGNAL là tên tín hiệu được gửi đi, PID sẽ là ID sẽ được loại bỏ trong tiến trình.

Từ lệnh ps, bạn có được thông tin PID mà Chrome đang chạy là 3827, 3919, 1076411679. Để gửi tín hiệu hủy đến các ID trên, bạn làm theo cấu trúc lệnh:

kill -9 3827
kill -9 3919
kill -9 10764
kill -9 11679

Sau khi bạn thực hiện các câu lệnh trên, ngay lập tức các tiến trình đang chạy của Chrome sẽ được ngắt kết nối thành công.

Ngoài ra, bạn có thể sử dụng lệnh killall để hủy tiến trình một cách nhanh chóng. Khi đã xác định được đối tượng bạn muốn hủy là Chrome, chỉ cần dùng killall kèm theo tín hiệu phù hợp là có thể kết thúc được tiến trình hoạt động của Chrome.

Ví dụ: killall -9 chrome

Tuy nhiên, sử dụng lệnh killall có thể không hủy được tất cả tiến trình của Chrome. Bạn có thể kiểm tra bằng cách sử dụng lệnh ps aux | grep chrome, nếu như thấy các tiến trình còn lại vẫn đang chạy tức là chưa hủy được triệt để. Lúc này, chỉ còn cách quay về lệnh kill và gửi tín hiệu 9 đến từng PID để kết thúc tiến trình.

Kết quả: Tiến trình sẽ được kết thúc dễ dàng

Như bạn có thể thấy, việc kết thúc triệt để một tiến trình đang hoạt động ngầm không khó khăn như bạn nghĩ, mà có thể nói là vô cùng dễ dàng. Đối với một tiến trình đơn giản, cách hiệu quả và nhanh nhất là sử dụng lệnh killall để chấm dứt nó. Tuy nhiên, đối với các tiến trình phức tạp, để tiêu diệt triệt để bạn nên sử dụng lệnh kill và gửi tín hiệu trên từng PID để đảm bảo từng hóa trình đã được chấm dứt.

Tổng kết về cách kill process trong Linux

Bài viết này đã tổng hợp các thông tin kill command cần thiết cho bạn. Nếu bạn còn bất cứ câu hỏi nào liên quan đến CLI, hãy để lại ở bên bình luận bên dưới, BKHOST sẽ trả lời bạn trong thời gian sớm nhất. Bạn cũng có thể truy cập vào Blog của BKHOST để đọc thêm các bài viết chia sẻ kiến thức về lập trình, quản trị mạng, website, domain, hosting, vps, server, email,… Chúc bạn thành công.

Đăng ký tên miền .VN tại BKHOST

BKHOST đang có chương trình khuyến mãi cực shock cho khách hàng đăng ký tên miền .VN:

  • Giảm ngay 140k.
  • Miễn phí 100% dịch vụ khởi tạo.

check tên miền việt nam

Tôi là Trịnh Duy Thanh, CEO & Founder Công ty Cổ Phần Giải Pháp Mạng Trực Tuyến Việt Nam - BKHOST. Với sứ mệnh mang tới các dịch vụ trên Internet tốt nhất cho các cá nhân và doanh nghiệp trong nước và quốc tế, tôi luôn nỗ lực hết mình nâng cấp đầu tư hệ thống phần cứng, nâng cao chất lượng dịch vụ chăm sóc khách hàng để đem đến những sản phẩm hoàn hảo nhất cho người tiêu dùng. Vì vậy, tôi tin tưởng sẽ đem đến các giải pháp CNTT mới nhất, tối ưu nhất, hiệu quả nhất và chi phí hợp lý nhất cho tất cả các doanh nghiệp.
Bình luận

Thanh toán linh hoạt

Chúng tôi chấp nhận thanh toán như ATM, Visa, Internet Banking, Paypal, Baokim, Ngân lượng

Gọi ĐT tư vấn ngay
Chat ngay qua Zalo
Chat ngay qua Messenger