Làm thế nào để giết quá trình sử dụng Linux

Hầu hết thời gian bạn sẽ muốn một chương trình kết thúc bằng các phương tiện riêng của nó, hoặc, nếu nó là một ứng dụng đồ họa, bằng cách sử dụng tùy chọn menu thích hợp hoặc bằng cách sử dụng dấu thập trong góc.

Thường thì một chương trình sẽ treo, trong trường hợp đó bạn sẽ cần một phương pháp để giết nó. Bạn cũng có thể muốn giết một chương trình đang chạy trong nền mà bạn không còn cần phải chạy.

Hướng dẫn này cung cấp một phương pháp để giết tất cả các phiên bản của cùng một ứng dụng đang chạy trên hệ thống của bạn.

Làm thế nào để sử dụng lệnh killall

Lệnh killall giết tất cả các tiến trình theo tên. Điều đó có nghĩa là nếu bạn có ba phiên bản của cùng một chương trình đang chạy lệnh killall sẽ giết cả ba.

Ví dụ, mở một chương trình nhỏ như một trình xem ảnh. Bây giờ hãy mở một bản sao của cùng một trình xem hình ảnh. Đối với ví dụ của tôi, tôi đã chọn Xviewer là một bản sao của Eye Of Gnome .

Bây giờ mở một terminal và gõ lệnh sau:

killall

Ví dụ để giết tất cả các trường hợp của Xviewer gõ như sau:

killall xviewer

Cả hai trường hợp của chương trình bạn đã chọn để giết bây giờ sẽ đóng.

Giết quy trình chính xác

killall có thể tạo ra kết quả lạ. Đây là một lý do tại sao. Nếu bạn có một tên lệnh dài hơn 15 ký tự thì lệnh killall sẽ chỉ hoạt động trên 15 ký tự đầu tiên. Do đó, bạn có hai chương trình chia sẻ cùng 15 ký tự đầu tiên, cả hai chương trình sẽ bị hủy mặc dù bạn chỉ muốn giết một chương trình.

Để giải quyết vấn đề này, bạn có thể chỉ định công tắc sau đây sẽ chỉ xóa các tệp phù hợp với tên chính xác.

killall -e

Bỏ qua trường hợp khi giết chương trình

Để đảm bảo lệnh killall bỏ qua trường hợp tên chương trình mà bạn cung cấp sử dụng lệnh sau:

killall -I
killall --ignore-case

Giết tất cả các chương trình trong cùng một nhóm

Khi bạn chạy một lệnh như sau, nó sẽ tạo ra hai quy trình:

ps -ef | ít hơn

Một lệnh là dành cho phần ps -ef liệt kê tất cả các tiến trình đang chạy trên hệ thống của bạn và đầu ra được chuyển tới lệnh less .

Cả hai chương trình thuộc về cùng một nhóm là bash.

Để tiêu diệt cả hai chương trình cùng một lúc, bạn có thể chạy lệnh sau:

killall -g

Ví dụ để tiêu diệt tất cả các lệnh chạy trong bash shell chạy như sau:

killall -g bash

Ngẫu nhiên liệt kê tất cả các nhóm đang chạy chạy lệnh sau:

ps -g

Nhận xác nhận trước khi giết chương trình

Rõ ràng, lệnh killall là một lệnh khá mạnh và bạn không muốn vô tình giết các tiến trình sai.

Sử dụng công tắc sau đây, bạn sẽ được hỏi liệu bạn có chắc chắn trước mỗi quá trình bị giết hay không.

killall -i

Kill Processes đã chạy trong một khoảng thời gian nhất định

Hãy tưởng tượng bạn đã chạy một chương trình và mất nhiều thời gian hơn bạn mong đợi.

Bạn có thể giết lệnh theo cách sau:

killall -o h4

Chữ h trong lệnh trên là viết tắt của giờ.

Bạn cũng có thể chỉ định bất kỳ thông tin nào sau đây:

Ngoài ra, nếu bạn muốn tiêu diệt các lệnh chỉ mới bắt đầu chạy, bạn có thể sử dụng công tắc sau:

killall -y h4

Lần này lệnh killall sẽ giết tất cả các chương trình chạy trong vòng chưa đến 4 giờ.

Đừng nói với tôi khi một quá trình không bị giết

Theo mặc định nếu bạn thử và giết một chương trình không chạy, bạn sẽ nhận được lỗi sau:

tên chương trình: không tìm thấy quy trình

Nếu bạn không muốn được thông báo nếu quá trình này không được tìm thấy, hãy sử dụng lệnh sau:

killall -q

Sử dụng cụm từ thông dụng

Thay vì chỉ định tên của một chương trình hoặc lệnh, bạn có thể chỉ định một biểu thức chính quy để tất cả các tiến trình khớp với cụm từ thông dụng được đóng bởi lệnh killall.

Để sử dụng cụm từ thông dụng, hãy sử dụng lệnh sau:

killall -r

Kill chương trình cho một người dùng chỉ định

Nếu bạn muốn giết một chương trình đang được chạy bởi một người dùng cụ thể, bạn có thể chỉ định lệnh sau đây:

killall -u

Nếu bạn muốn giết tất cả các quy trình cho một người dùng cụ thể, bạn có thể bỏ qua tên chương trình.

Chờ cho killall để kết thúc

Theo mặc định, killall sẽ quay trở lại thẳng thiết bị đầu cuối khi bạn chạy nó nhưng bạn có thể buộc killall đợi cho đến khi tất cả các quy trình được chỉ định đã bị đóng trước khi đưa bạn trở lại cửa sổ đầu cuối.

Để thực hiện việc này, hãy chạy lệnh sau:

killall -w

Nếu chương trình không bao giờ chết thì killall cũng sẽ tiếp tục sống.

Tín hiệu tín hiệu

Theo mặc định lệnh killall gửi tín hiệu SIGTERM đến các chương trình để làm cho chúng đóng lại và đây là phương pháp sạch nhất để giết chốn các chương trình.

Tuy nhiên, có các tín hiệu khác bạn có thể gửi bằng lệnh killall và bạn có thể liệt kê chúng bằng cách sử dụng lệnh sau:

killall -l

Danh sách được trả về sẽ có dạng như sau:

Danh sách đó rất dài. Để đọc về những gì các tín hiệu này có nghĩa là chạy lệnh sau:

tín hiệu người đàn ông 7

Nói chung, bạn nên sử dụng tùy chọn SIGTERM mặc định nhưng nếu chương trình từ chối chết, bạn có thể sử dụng SIGKILL để buộc chương trình đóng cửa mặc dù theo một cách không được kiểm soát.

Các cách khác để giết một chương trình

5 cách khác để tiêu diệt một ứng dụng Linux như được đánh dấu trong hướng dẫn được liên kết.

Tuy nhiên để tiết kiệm cho bạn những nỗ lực của cách nhấp vào liên kết ở đây là một phần hiển thị những gì các lệnh được là lý do tại sao bạn có thể sử dụng các lệnh trên killall.

Đầu tiên là lệnh kill. Lệnh killall như bạn đã thấy rất tuyệt khi giết tất cả các phiên bản của cùng một chương trình. Lệnh giết được thiết kế để tiêu diệt một tiến trình tại một thời điểm và do đó được nhắm mục tiêu nhiều hơn.

Để chạy lệnh kill bạn cần biết ID tiến trình của quá trình bạn muốn giết. Đối với điều này, bạn có thể sử dụng lệnh ps .

Ví dụ để tìm phiên bản Firefox đang chạy, bạn có thể chạy lệnh sau:

ps -ef | grep firefox

Bạn sẽ thấy một dòng dữ liệu với lệnh / usr / lib / firefox / firefox ở cuối. Ở đầu dòng, bạn sẽ thấy ID người dùng của mình và số sau ID người dùng là ID tiến trình.

Sử dụng ID tiến trình bạn có thể giết Firefox bằng cách chạy lệnh sau:

kill -9

Một cách khác để giết một chương trình là sử dụng lệnh xkill. Điều này thường được sử dụng để tiêu diệt các ứng dụng đồ họa sai.

Để giết một chương trình như Firefox mở một thiết bị đầu cuối và chạy lệnh sau:

xkill

Con trỏ bây giờ sẽ thay đổi thành một chữ thập lớn màu trắng. Di con trỏ qua cửa sổ bạn muốn giết và nhấp bằng nút chuột trái. Chương trình sẽ thoát ngay lập tức.

Một cách khác để giết một tiến trình là sử dụng lệnh trên cùng của Linux. Lệnh trên liệt kê tất cả các tiến trình đang chạy trên hệ thống của bạn.

Tất cả những gì bạn phải làm để giết một quá trình là nhấn phím "k" và nhập ID tiến trình của ứng dụng mà bạn muốn giết.

Trước đó trong phần này lệnh kill và nó yêu cầu bạn tìm quá trình bằng lệnh ps và sau đó giết quá trình bằng lệnh kill.

Đây không phải là lựa chọn đơn giản nhất bằng bất kỳ phương tiện nào.

Đối với một điều, lệnh ps trả về vô số thông tin bạn không cần. Tất cả những gì bạn muốn là ID tiến trình. Bạn có thể lấy ID tiến trình đơn giản hơn bằng cách chạy lệnh sau:

pgrep firefox

Kết quả của lệnh trên chỉ đơn giản là quá trình ID của Firefox. Bây giờ bạn có thể chạy lệnh kill như sau:

giết

(Thay thế bằng ID tiến trình thực được trả về bởi pgrep).

Nó thực sự là dễ dàng hơn, tuy nhiên, chỉ đơn giản là cung cấp tên chương trình để pkill như sau:

pkill firefox

Cuối cùng, bạn có thể sử dụng một công cụ đồ họa như công cụ được cung cấp với Ubuntu có tên "System Monitor". Để chạy "System Monitor" bấm phím siêu (phím Windows trên hầu hết các máy tính) và gõ "sysmon" vào thanh tìm kiếm. Khi biểu tượng màn hình hệ thống xuất hiện, hãy nhấp vào biểu tượng đó.

Màn hình hệ thống hiển thị danh sách các quy trình. Để kết thúc một chương trình một cách sạch sẽ, hãy chọn nó và bấm phím kết thúc ở cuối màn hình (hoặc nhấn CTRL và E). Nếu điều này không làm việc hoặc nhấp chuột phải và chọn "Kill" hoặc nhấn CTRL và K trên quá trình bạn muốn giết.