Nội dung bài viết
#

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

Nội dung bài viết

    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.

    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:

    {{EJS0}}

    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:

    {{EJS1}}

    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:

    {{EJS2}}

    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.

    Thuê Máy Chủ Vật Lý tại BKHOST

    Giảm giá cực sâu, chất lượng hàng đầu. Đăng ký ngay hôm nay:

    thuê server vật lý

    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

    Trượt lên đầu trang
    Gọi ĐT tư vấn ngay
    Chat ngay qua Zalo
    Chat ngay qua Messenger
    Bạn đã hài lòng với trải nghiệm trên Bkhost.vn?
    Cảm ơn lượt bình chọn của bạn, Chúc bạn 1 ngày tốt lành !