Liên hệProfile
Danh mục

Mục Lục

    Hướng dẫn sử dụng lệnh killall trong Linux để dừng nhiều tiến trình theo tên

    Nguyễn Hưng

    Ngày đăng:

    25/04/2026

    Cập nhật lần cuối:

    25/04/2026

    Lượt xem:
    Chia sẻ
    Đánh giá
    5/5 - (1 bình chọn)

    Nguyễn Hưng

    Lượt xem:
    Ngày đăng:

    25/04/2026

    Cập nhật lần cuối:

    25/04/2026

    Mục lục

    Trong quá trình quản trị hệ thống, thay vì tiêu tốn thời gian thực hiện những thao tác lặp đi lặp lại một cách thủ công, mình thường sử dụng lệnh killall để dọn dẹp toàn bộ các tiến trình có cùng tên chỉ trong một lần nhấn phím duy nhất. Bài viết này sẽ chia sẻ lại những kinh nghiệm thực chiến và cách ứng dụng killall hiệu quả nhất giúp bạn tối ưu hóa công việc quản lý Linux hàng ngày.

    Những điểm chính

    Đối với mình, việc kiểm soát tiến trình trên Linux không chỉ giúp hệ thống hoạt động ổn định mà còn là yếu tố quan trọng để tối ưu hiệu năng và xử lý sự cố nhanh chóng. Để giúp bạn hiểu rõ hơn về lệnh killall trong thực tế sử dụng, bài viết dưới đây sẽ cung cấp các thông tin gồm:

    • Khái niệm: Hiểu rõ killall là lệnh được sử dụng để gửi tín hiệu điều khiển đến toàn bộ các tiến trình đang hoạt động dựa trên tên gọi chính xác của chương trình đó.
    • Lợi ích khi sử dụng: Biết cách tối ưu hóa hiệu suất quản trị, đơn giản hóa quy trình vận hành và tăng độ chính xác khi giải phóng tài nguyên.
    • Các tùy chọn phổ biến: Nắm vững bảng tham số đa dạng để tùy chỉnh việc kết thúc tiến trình theo người dùng, thời gian hoặc biểu thức chính quy.
    • Hướng dẫn sử dụng chi tiết: Thành thạo các kỹ năng thực tế từ dừng ứng dụng an toàn đến tải lại cấu hình dịch vụ mà không cần restart.
    • Xử lý lỗi thường gặp: Chủ động nhận diện và khắc phục nhanh các sự cố như lỗi quyền hạn hoặc tình trạng không tìm thấy tiến trình đang chạy.
    • Lưu ý quan trọng: Ghi nhớ các nguyên tắc bảo mật và rủi ro khi dùng lệnh cưỡng chế để đảm bảo tính ổn định tuyệt đối cho máy chủ.
    • Câu hỏi thường gặp: Giải đáp các câu hỏi thường gặp liên quan đến lệnh killah.

    Lệnh killall là gì?

    killall là lệnh được sử dụng để gửi tín hiệu điều khiển đến toàn bộ các tiến trình đang hoạt động dựa trên tên gọi chính xác của chương trình đó. Điểm khác biệt chính của lệnh killall so với lệnh kill nằm ở khả năng xử lý hàng loạt, thay vì bạn phải tra cứu và nhập thủ công từng PID riêng lẻ, killall cho phép bạn chấm dứt đồng thời mọi phiên làm việc của một ứng dụng cụ thể chỉ bằng một câu lệnh. 

    Chính nhờ cơ chế này, killall trở thành giải pháp tối ưu để nhanh chóng giải phóng tài nguyên hệ thống hoặc cưỡng chế dừng các phần mềm bị treo, không phản hồi mà không lo bỏ sót bất kỳ tiến trình con nào. Tín hiệu là cơ chế giao tiếp giữa kernel và các tiến trình, các tín hiệu phổ biến của lệnh killall bao gồm:

    • SIGTERM (15): Tín hiệu dừng an toàn, cho phép bạn thực hiện dọn dẹp hoặc lưu trữ dữ liệu trước khi dừng hẳn. Đây là tín hiệu mặc định.
    • SIGKILL (9): Tín hiệu buộc tiến trình dừng ngay lập tức và dữ liệu sẽ không được dọn dẹp, lưu trữ.
    • SIGHUP (1): Tín hiệu yêu cầu tải lại cấu hình, thường được dùng cho các dịch vụ nền như Apache hoặc Nginx.
    killall được sử dụng để gửi tín hiệu điều khiển đến toàn bộ các tiến trình đang hoạt động dựa trên tên gọi chính xác của chương trình đó.
    Lệnh killall là lệnh trong Linux dùng để gửi tín hiệu (signal) đến tất cả các tiến trình có cùng tên

    Những lợi ích khi sử dụng lệnh killall

    Việc sử dụng lệnh killall trong quản trị hệ thống xuất đem lại những lợi ích như sau:

    • Xử lý đồng loạt: Lệnh killall có thể kết thúc tất cả các tiến trình có cùng tên với một câu lệnh duy nhất, phù hợp khi bạn cần đóng hàng loạt tab trình duyệt hoặc các tiến trình con của một dịch vụ web mà không cần thao tác lặp đi lặp lại.
    • Đơn giản hóa quy trình: Khi sử dụng lệnh killall, bạn có thể bỏ qua bước trung gian phức tạp khi phải dùng ps hoặc top để dò tìm mã định danh. Bạn chỉ cần biết tên chương trình là có thể xử lý ngay lập tức, giúp tiết kiệm thời gian thao tác.
    • Độ an toàn cao hơn pkill: Mặc định, killall yêu cầu tên chương trình phải khớp chính xác mới có thể thực thi. Cơ chế này giúp giảm rủi ro vô tình tắt nhầm các tiến trình hệ thống có tên gần giống, một lỗi thường gặp khi dùng pkill.
    • Hỗ trợ tự động hóa: Lệnh này trả về mã trạng thái rõ ràng: Trả về 0 nếu kết thúc tiến trình tiến trình thành công, khác 0 nếu không tìm thấy tên. Tính năng này rất quan trọng khi bạn viết các shell script để tự động kiểm tra, dọn dẹp hoặc khởi động lại dịch vụ.
    • Linh hoạt gửi tín hiệu: Ngoài việc dùng để tắt ứng dụng, killall cho phép gửi nhiều loại tín hiệu điều khiển khác nhau như -HUP để reload cấu hình, -STOP để tạm dừng,… tới tất cả các tiến trình cùng tên, giúp bạn quản lý dịch vụ linh hoạt hơn.
    Những lợi ích khi sử dụng lệnh killall
    Những lợi ích khi sử dụng lệnh killall

    Các tùy chọn phổ biến của lệnh killall

    Cú pháp lệnh killall như sau:

    killall [OPTION] process_name

    Trong đó:

    • [OPTION]: Các tùy chọn thêm để điều chỉnh cách lệnh killall hoạt động, được đặt trong ngoặc vuông nên bạn có thể bỏ qua.
    • process_name: Tên của tiến trình mà bạn muốn gửi tín hiệu dừng hoặc kết thúc.

    Dưới đây là bảng các tùy chọn được sử dụng phổ biến của lệnh killall:

    Tùy chọnMô tả
    -I, –ignore-caseBỏ qua sự phân biệt chữ hoa và chữ thường khi đối chiếu tên tiến trình.
    -g, –process-groupKết thúc toàn bộ nhóm tiến trình liên quan. Hệ thống chỉ gửi tín hiệu một lần duy nhất cho mỗi nhóm, bất kể số lượng tiến trình bên trong.
    -i, –interactiveHiển thị lời nhắc yêu cầu người dùng xác nhận trước khi thực hiện kết thúc tiến trình.
    -l, –listHiển thị danh sách toàn bộ các tên tín hiệu mà hệ thống hỗ trợ.
    -o, –older-thanChỉ áp dụng với các tiến trình đã khởi chạy trước một khoảng thời gian cụ thể, hỗ trợ các đơn vị: s (giây), m (phút), h (giờ), d (ngày), w (tuần), M (tháng), y (năm).
    -q, –quietTắt các thông báo lỗi hoặc cảnh báo trong trường hợp không tìm thấy tiến trình nào để kết thúc.
    -r, –regexpCho phép sử dụng biểu thức chính quy mở rộng chuẩn POSIX để xác định tên tiến trình.
    -s, –signal, -SIGNALChỉ định một tín hiệu cụ thể để gửi đi thay vì sử dụng tín hiệu mặc định là SIGTERM.
    -u, –userGiới hạn phạm vi tác động, chỉ kết thúc các tiến trình thuộc quyền sở hữu của người dùng được chỉ định.
    -v, –verboseHiển thị báo cáo chi tiết về kết quả gửi tín hiệu lên màn hình.
    -V, –versionIn ra thông tin về phiên bản hiện tại của phần mềm đang sử dụng.
    -y, –younger-thanChỉ tác động lên các tiến trình vừa mới khởi chạy trong khoảng thời gian quy định. Các đơn vị thời gian sử dụng tương tự như tùy chọn -o.

    1. Kết thúc tiến trình một cách an toàn (Mặc định)

    Để gửi tín hiệu SIGTERM (15) để yêu cầu tiến trình tự dừng lại một cách an toàn, bạn hãy thực thi lệnh sau:

    killall <tên tiến trình>

    Ví dụ, để kết thúc tất cả các tiến trình có tên sleep, bạn thực hiện lệnh dưới đây:

    killall sleep
    Tắt tiến trình mặc định
    Tắt tiến trình mặc định

    Đây là cách kết thúc tiến trình an toàn vì cho phép chương trình dọn dẹp các file tạm thời và lưu trạng thái trước khi thoát.

    2. Buộc kết thúc tiến trình ngay lập tức

    Bạn có thể gửi tín hiệu SIGKILL (9) để buộc tiến trình phải kết thúc ngay lập tức, thường dùng khi tiến trình bị treo. Bạn thực hiện với cú pháp như sau:

    killall -9 <tên tiến trình>
    # Hoặc
    killall -SIGKILL <tên tiến trình>

    Ví dụ, bạn có thể sử dụng killall -9 để kết thúc tất cả các tiến trình có tên sleep với lệnh sau:

    killall -9 sleep
    Buộc kết thúc tiến trình ngay lập tức
    Buộc kết thúc tiến trình ngay lập tức

    Lưu ý

    Tùy chọn -9 (hoặc -SIGKILL) không cho phép chương trình lưu dữ liệu trước khi xóa nên có thể gây hỏng hoặc mất dữ liệu.

    3. Kết thúc tiến trình của người dùng cụ thể

    Để giới hạn phạm vi xử lý, chỉ áp dụng lệnh killall cho các tiến trình thuộc về một người dùng nhất định, bạn hãy thực thi cú pháp lệnh như sau:

    sudo killall -u <tên người dùng> <tên tiến trình>

    Ví dụ, bạn chạy lệnh sau để kết thúc tiến trình sleep của người dùng tên testuser:

    sudo killall -u testuser sleep
    Kết thúc tiến trình của người dùng cụ thể
    Kết thúc tiến trình của người dùng cụ thể

    Trong đó, tùy chọn -u (user) yêu cầu quyền sudo nếu người dùng đó không phải là bạn.

    4. Yêu cầu xác nhận trước khi kết thúc tiến trình

    Nếu bạn cần hệ thống hiển thị danh sách các tiến trình sẽ bị kết thúc và hỏi xác nhận cho từng tiến trình, hãy thực hiện lệnh sau:

    killall -i <tên tiến trình>

    Ví dụ, để gửi tín hiệu kết thúc (mặc định là SIGTERM) tới tất cả các tiến trình tên sleep nhưng sẽ hỏi xác nhận từng tiến trình trước khi dừng, bạn hãy sử dụng lệnh sau:

    killall -i sleep
    Yêu cầu xác nhận trước khi kết thúc tiến trình
    Yêu cầu xác nhận trước khi kết thúc tiến trình
    • Nếu bạn gõ y (Yes) và Enter: Tiến trình sleep sẽ nhận tín hiệu kết thúc an toàn (SIGTERM) và dừng lại.
    • Nếu bạn gõ n (No) và Enter: Tiến trình sleep sẽ tiếp tục chạy nền.

    5. Gửi tín hiệu tải lại cấu hình

    Để yêu cầu các dịch vụ nền tải lại file cấu hình mà không cần dừng và khởi động lại dịch vụ, bạn thực hiện lệnh dưới đây:

    killall -HUP <tên tiến trình>
    # Hoặc
    killall -1 <tên tiến trình>

    Ví dụ, để yêu cầu dịch vụ Nginx tải lại cấu hình, bạn chạy lệnh sau:

    Yêu cầu dịch vụ Nginx tải lại cấu hình
    Yêu cầu dịch vụ Nginx tải lại cấu hình

    Trong đó, tín hiệu SIGHUP (1) là tiêu chuẩn để thực hiện việc tải lại cấu hình.

    6. Kiểm tra kết quả sau khi chạy lệnh killall

    Sau khi chạy lệnh killall, bạn hãy kiểm tra lại bằng lệnh sau:

    ps aux | grep <tên tiến trình>

    Nếu tiến trình không còn được liệt kê trong danh sách (ngoại trừ lệnh grep của bạn), tức là thao tác đã thành công.

    Xử lý lỗi phổ biến khi chạy lệnh killall

    Trong quá trình vận hành thực tế, việc sử dụng killall đôi khi sẽ phát sinh một số thông báo lỗi hoặc cảnh báo mà người quản trị cần nắm rõ để xử lý kịp thời. Dưới đây là những lỗi thường gặp khi chạy lệnh killall, kèm theo nguyên nhân và cách khắc phục tương ứng để bạn tham khảo:

    1. Lỗi: killall: <tên tiến trình>: no process found

    • Nguyên nhân: Tên tiến trình bạn nhập không chính xác hoặc không có phiên bản nào của chương trình đó đang chạy.
    • Khắc phục: Bạn sử dụng lệnh sau để kiểm tra tên tiến trình chính xác:
    ps aux | grep <tên tiến trình>

    Lưu ý

    Linux phân biệt chữ hoa/thường trong lệnh.

    2. Lỗi: Operation not permitted

    • Nguyên nhân: Bạn đang cố gắng tiêu diệt tiến trình thuộc về người dùng khác, ví dụ như root hoặc www-data.
    • Khắc phục: Bạn cần sử dụng lệnh với quyền root:
    sudo killall ....

    3. Cảnh báo: Lệnh killall trên các hệ thống cũ (SysVinit)

    • Nguyên nhân: Trên một số phiên bản Unix/Linux cũ, lệnh killall không có tùy chọn an toàn.
    • Khắc phục: Bạn sử dụng lệnh pkill thay cho killall trên các hệ thống rất cũ. Để tối ưu hơn, bạn hãy xác nhận trên hệ thống Linux hiện đại của mình rằng killall là phiên bản an toàn và có phân biệt tên tiến trình.

    Trong quản trị hạ tầng đa dạng, killall trên các hệ thống cũ thường thiếu các cơ chế kiểm soát tín hiệu an toàn, dễ dẫn đến những hành vi khó đoán định. Kinh nghiệm của mình là ưu tiên sử dụng pkill làm phương án thay thế trong mọi trường hợp, bởi khả năng lọc tiến trình thông minh và tính nhất quán cao trên các phiên bản nhân (kernel) khác nhau. Việc chuẩn hóa công cụ vận hành trên toàn bộ hạ tầng chính là cách tốt nhất để giảm thiểu sai sót do sự khác biệt giữa các hệ điều hành.

    Các lỗi phổ biến khi chạy lệnh killall
    Các lỗi phổ biến khi chạy lệnh killall

    Lưu ý khi dùng lệnh killall

    Để đảm bảo an toàn cho dữ liệu và tính ổn định của hệ thống, bạn cần đặc biệt lưu ý những điểm sau trước khi thực thi lệnh killall:

    • Cẩn trọng với sự khác biệt nền tảng: Trên Linux, killall dùng để tắt tiến trình theo tên. Tuy nhiên, trên các hệ thống Unix cũ, lệnh này có nghĩa là “Kill All” – Tức là tắt toàn bộ tiến trình hệ thống, dẫn đến việc máy chủ bị sập hoặc khởi động lại ngay lập tức. Do đó bạn cần tuyệt đối cẩn thận khi làm việc trên các môi trường không phải Linux chuẩn.
    • Kiểm soát phạm vi người dùng: Khi bạn chạy lệnh với quyền root (sudo), killall sẽ quét và tắt mọi tiến trình trùng tên của tất cả người dùng trên hệ thống. Để an toàn, bạn hãy luôn giới hạn phạm vi bằng tùy chọn -u.
    • Tránh lạm dụng tín hiệu -9 (SIGKILL): Bạn để lệnh gửi tín hiệu mặc định (SIGTERM – 15) trước để ứng dụng có thời gian lưu dữ liệu và đóng các kết nối một cách an toàn, chỉ dùng -9 khi ứng dụng bị treo cứng.
    • Phân biệt hoa thường: Lệnh killall mặc định phân biệt chữ hoa và chữ thường, do đó bạn cần dùng tùy chọn -I (Ignore case) nếu muốn bỏ qua sự phân biệt này.
    • Xác nhận tiến trình đã tắt hẳn: Bạn có thể dùng tùy chọn -w (wait) để yêu cầu lệnh killall chờ và chỉ trả lại dấu nhắc lệnh khi tiến trình đã kết thúc hoàn toàn.
    Bạn cần lưu ý khi dùng lệnh killall
    Bạn cần lưu ý khi dùng lệnh killall (Nguồn: Internet)

    Câu hỏi thường gặp

    Lệnh killall và lệnh pkill khác nhau ở điểm nào?

    Mặc dù cả hai đều tác động lên tiến trình dựa theo tên, nhưng killall yêu cầu tên tiến trình phải khớp chính xác hoàn toàn. Trong khi đó, pkill linh hoạt hơn, cho phép tìm kiếm theo một phần tên hoặc mẫu ký tự.

    Vì sao tôi không nên sử dụng killall -9 ngay từ đầu?

    Tín hiệu -9 (SIGKILL) là phương pháp bắt buộc kết thúc tiến trình. Do đó khi sử dụng tín hiệu này, tiến trình sẽ bị ngắt ngay lập tức mà không thể lưu dữ liệu đang xử lý hoặc đóng các kết nối mở, dẫn đến nguy cơ hỏng file hoặc mất dữ liệu. Bạn chỉ nên dùng killall -9 khi tín hiệu mặc định không có tác dụng.

    Lệnh báo lỗi “no process found” dù tôi thấy chương trình đang chạy?

    Nguyên nhân thường gặp nhất là do Linux phân biệt chữ hoa và chữ thường. Ví dụ, nếu tiến trình tên là Chrome nhưng bạn gõ killall chrome thì sẽ không tìm thấy kết quả. Để khắc phục, bạn có thể dùng tùy chọn -I (Ignore case) để bỏ qua việc phân biệt này:
    killall -I chrome

    Qua bài viết này, mình hy vọng bạn đã nắm vững cách sử dụng killall để quản lý các tiến trình trên Linux một cách hiệu quả. Nhờ khả năng xử lý đồng thời nhiều phiên bản phần mềm và kết hợp các bộ lọc theo thời gian, người dùng, killall giúp bạn thao tác nhanh chóng, chính xác và tiện lợi hơn rất nhiều so với việc tìm và dừng từng tiến trình thủ công.

    5/5 - (1 bình chọn)
    Nguyễn Hưng
    Tôi là Nguyễn Hưng hay còn được biết đến với nickname là Bo, chuyên gia về hệ thống, mạng và bảo mật. Tôi là Co-Founder của Vietnix và Co-Founder của dự án Chống Lừa Đảo.
    0 0 đánh giá
    Đánh giá bài viết
    Theo dõi
    Thông báo của
    guest
    0 Góp ý
    Cũ nhất
    Mới nhất Được bỏ phiếu nhiều nhất
    Phản hồi nội tuyến
    Xem tất cả bình luận

    BÀI VIẾT LIÊN QUAN

    Hướng dẫn trỏ tên miền về hosting
    Hướng dẫn trỏ tên miền về hosting

    Việc kết nối chính xác tên miền với hosting là bước kỹ thuật quan trọng nhất để đưa website vào vận hành chính thức trên môi trường Internet. Bài viết này được mình đúc kết từ quá trình trực tiếp cấu hình hạ tầng và hỗ trợ xử lý DNS cho hàng ngàn khách hàng…

    08/06/2026

    Cách kiểm tra hosting của website: IP, nameserver, vị trí
    Cách kiểm tra hosting của website: IP, nameserver, vị trí

    Hosting của website là không gian trên máy chủ dùng để lưu trữ toàn bộ dữ liệu. Theo mình, một website ổn định không chỉ phụ thuộc vào nội dung chất lượng mà còn đòi hỏi hạ tầng hosting ổn định và việc hiểu rõ cách kiểm tra thông tin hosting sẽ giúp bạn phát…

    08/06/2026

    Cách đưa web lên hosting chi tiết, đơn giản cho người mới
    Cách đưa web lên hosting chi tiết, đơn giản cho người mới

    Hosting website là dịch vụ cung cấp không gian lưu trữ trên máy chủ để bạn đăng tải và vận hành website trên Internet, giúp người dùng có thể truy cập và tương tác với trang web từ bất kỳ đâu. Thay vì chỉ dừng lại ở lý thuyết, bài viết này được mình đúc…

    08/06/2026

    Virtual hosting là gì? Hiểu công nghệ nền tảng shared hosting
    Virtual hosting là gì? Hiểu công nghệ nền tảng shared hosting

    Virtual Hosting (Virtual Host) là một giải pháp cho phép nhiều website hoặc tên miền cùng được vận hành trên một máy chủ vật lý hoặc một địa chỉ IP duy nhất. Đây là nền tảng quan trọng đứng sau sự phổ biến của dịch vụ Shared Hosting, giúp tối ưu chi phí mà vẫn…

    08/06/2026

    linux

    lenh

    text