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.
Xem thêm: Tổng hợp các câu lệnh cơ bản trong Linux
Bước 1: Xem các process đang chạy trong Linux
Lệnh t
op trong Linux 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
Để 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 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 shutdown. 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.
Vietnix – Nhà cung cấp dịch vụ VPS linh hoạt và hiệu năng cao cho doanh nghiệp
Vietnix là nhà cung cấp dịch vụ VPS chất lượng và uy tín tại Việt Nam, mang đến giải pháp lưu trữ tối ưu cho doanh nghiệp với khả năng mở rộng linh hoạt, thời gian kích hoạt nhanh chóng và nâng cấp dễ dàng. Dịch vụ VPS của Vietnix giúp tiết kiệm thời gian và chi phí, đảm bảo hệ thống hoạt động mượt mà và hiệu quả.
Đối với những doanh nghiệp cần hiệu năng vượt trội, VPS AMD của Vietnix là sự lựa chọn hoàn hảo. Với CPU AMD EPYC mạnh mẽ và ổ cứng NVMe Enterprise siêu tốc, VPS mang đến tốc độ xử lý dữ liệu cực nhanh, đáp ứng nhu cầu của các ứng dụng đòi hỏi khả năng xử lý cao. Thêm vào đó, bạn có thể dễ dàng nâng cấp cấu hình, dung lượng và tốc độ khi cần, chỉ phải thanh toán cho tài nguyên đã sử dụng.
Thông tin liên hệ:
- Hotline: 18001093
- Email: sales@vietnix.com.vn
- Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh.
- Website: https://vietnix.vn/
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.