NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
26/04/2024
Lượt xem

Hướng dẫn kill process trong Linux nhanh chóng

26/04/2024
8 phút đọc
Lượt xem

Đánh giá

5/5 - (186 bình chọn)

Kill process trong Linux là một phương pháp hiệu quả để xử lý những process không phản hồi hay tiêu thụ quá nhiều tài nguyên. Bài viết này sẽ hướng dẫn nhiều cách phổ biến để kill process trong Linux nhanh nhất.

Những process nào có thể kill được trong Linux

Trước khi muốn dừng một process, ta cần phải chú ý đến quyền truy cập của process này. Chỉ người dùng sudo mới có quyền kill mọi process trong Linux, do đó ta có thể thêm sudo trước một lệnh để chạy lệnh dưới quyền root, hoặc dùng root shell với lệnh su.

Việc kill process trong Linux sẽ gửi một tin nhắn đến process đó. Đây là tin nhắn yêu cầu process kết thúc và có nhiều loại tin nhắn khác nhau, trong đó:

  • SIGKILL – Luôn kill process nhanh nhất có thể, luôn hoạt động trừ khi hệ điều hành gặp sự cố.
  • SIGTERM – Cũng kill process nhưng có thể được quản lý hoặc bị block.

Nói chung, SIGKILL là cách nhanh gọn và hiệu quả nhất để kill process trong Linux.

Bước 1: Xem các process đang chạy trong Linux

Lệnh top là cách dễ nhất để kiểm tra những process đang chạy trên hệ thống. Câu lệnh này trả về ID và user của process, lượng bộ nhớ và CPU mỗi process đang tiêu thụ

top
Xem các process đang chạy trong Linux
Xem các process đang chạy trong Linux

Để kill process trực tiếp từ giao diện của top thì ta có thể nhấn phím k rồi nhập ID của process.

Để thoát khỏi giao diện top, nhấn nút q.

Bước 2: Xác định process cần kill

Có nhiều cách khác nhau để tìm một process trong Linux. Các process có thể được nhóm theo tên hoặc ID (pid).

Tìm process bằng lệnh ps

Lệnh ps hiển thị các thông tin tương tự như top, nhưng trả về một danh sách các process đang chạy có định dạng dựa trên tag mà ta thêm vào lệnh.

ps <options>

Trong đó các option phổ biến nhất là:

  • -a: Xem process của mọi user
  • -u: Xem thông tin chi tiết của từng process
  • -x: Xem thêm những process được kiểm soát bởi daemon

Chẳng hạn, lệnh ps -aux sẽ trả vè một danh sách thông tin chi tiết của mọi process như sau:

Tìm process bằng lệnh ps
Tìm process bằng lệnh ps

Tìm PID bằng lệnh pgrep hoặc pidof

Lệnh pgrep sẽ phức tạp hơn một chút, có thể trả về các process dựa trên một số tiêu chí nhất định (còn gọi là pattern – mẫu). Mẫu ở đây có thể là những biểu thức chính quy, chẳng hạn như a*.

pgrep <options> <pattern>

Các option có thể được dùng với lệnh:

  • -l: Liệt kê tên và PID của process
  • -n: Hiển thị process mới nhất
  • -o: Hiển thị process cũ nhất
  • -u: Tìm những process thuộc về một user nhất định
  • -x: Tìm những process khớp với mẫu biểu thức chính quy

Lệnh pgrep -u root hiển thị mọi process sở hữu bởi root, còn lệnh pgrep -u root 'a*' hiển thị những process được sở hữu bởi root và bắt đầu bằng ký tự “a“.

Tiếp đến là lệnh pidof, được dùng để tìm ID của một process nếu biết trước tên của nó:

pidof <options> <program>

Các option của lệnh:

  • -c: Chỉ hiển thị những PID trong một thư mục root duy nhất
  • -o: Loại bỏ một số PID nhất định (viết kèm tên của process sau flag này trong lệnh)
  • -s: Hiển thị một PID duy nhất
  • -x: Trả về PID của shell đang chạy script

Bước 3: Kill process trong Linux

Có nhiều phương pháp khác nhau để kill một process trong Linux, tuỳ xem ta có biết tên, pid hay thời gian chạy của process hay không.

Lệnh killall

Lệnh killall được dùng để kill các process dựa theo tên. Theo mặc định thì nó sẽ gửi một tín hiệu SIGTERM và có thể kill nhiều process trong một lệnh duy nhất.

killall <process>

Các option có thể dùng cho lệnh killall:

  • -e: Tìm process có tên khớp hoàn chỉnh
  • -I: Không phân biệt chữ hoa và chữ thường
  • -i: Yêu cầu bổ sung thêm thông tin khi kill process
  • -u: Chỉ kill những process được sở hữu bởi một người dùng nhất định
  • -v: Báo cáo lại xem process đã được kill thành công chưa

Bên cạnh việc kill process dựa theo tên, lệnh killall còn có thể được dùng để kill những process dựa trên thời gian chạy của chúng bằng những lệnh sau:

  • -o: Kèm theo một con số chỉ thời lượng, khi đó lệnh sẽ kill mọi process chạy lâu hơn lượng thời gian này. Ví dụ: killall -o 15m sẽ kill mọi process chạy lâu hơn 15 phút.
  • -y: Ngược lại ở trên, kill mọi process chạy ít hơn lượng thời gian cho sẵn. Ví dụ: killall -y 15m.

Lệnh pkill

Lệnh này cũng tương tự như lệnh pgrep, có thể kill process dựa trên tên và một số yếu tố khác. Theo mặc định thì pkill gửi một tín hiệu SIGTERM đến process.

pkill <options> <pattern>

Các option của lệnh gồm có:

  • -n: Chỉ kill process mới nhất
  • -o: Chỉ kill process cũ nhất
  • -u: Chỉ kill process được sở hữu bởi một người dùng xác định
  • -x: Chỉ kill process khớp mẫu hoàn toàn
  • -signal: Gửi một tin nhắn khác đến process thay cho SIGTERM

Lệnh kill

Lệnh kill được dùng để kill process nếu biết được ID của chúng:

kill <processID>

Lệnh kill chỉ kill từng process một, theo mặc định sẽ gửi một tin nhắn SIGTERM đến process cần dừng.

Ngoài ra, ta cũng có thể dùng lệnh -signal để gửi một tin nhắn khác thay cho SIGTERM.

Lệnh kill -9

kill -9 là một lệnh vô cùng hiệu quả khi ta cần shut down một dịch vụ không phản hồi:

kill -9 <processID>

Hoặc:

kill -SIGKILL <processID>

Lệnh kill-9 sẽ gửi một tín hiệu SIGKILL đến dịch vụ cần shut down. Các chương trình không phản hồi có thể bỏ qua lệnh kill, nhưng vẫn sẽ bị tắt khi gặp lệnh kill -9. Tuy nhiên, hãy cẩn thận khi dùng lệnh này vì nó phá vỡ quy trình shutdown tiêu chuẩn của chương trình nên có thể làm mất dữ liệu chưa được lưu lại.

Nếu lệnh kill -9 không dừng được dịch vụ thì chắc chắn hệ điều hành đang gặp vấn đề.

Lệnh top

Lệnh top cung cấp một giao diện để người dùng có thể điều hướng đến những process đang chạy trên hệ thống:

top

Để kill một process, chỉ cần nhấn k rồi nhập ID của process.

Lệnh xkill

Lệnh xkill là một kiểu lệnh đặc biệt, được dùng để đóng kết nối từ một server đến client:

xkill <resource>

Nếu một server đang mở nhiều process không cần thiết thì có thể dùng lệnh xkill để dừng những process này. Nếu không chỉ định tài nguyên cho lệnh xkill thì giao diện sẽ cho phép người dùng lựa chọn một cửa sổ để đóng.

Lời kết

Hầu hết các process đều có những cơ chế để shutdown riêng, nhưng nếu gặp trục trặc khi hoạt động thì ta cần kill process để dừng nó. Qua bài viết này, Vietnix đã cung cấp nhiều câu lệnh đơn giản để kill process trong Linux nhanh và hiệu quả nhất.

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Chọn chủ đề :

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG