Về cơ bản là có 4 cách de Matar một cách hiệu quả quá trình en Linux: giết nó bằng tên, bằng cách chỉ định một phần của tên, bằng PID, trỏ chuột vào cửa sổ tiến trình. Hãy xem từng cái một ... |
Kill: giết một tiến trình bằng PID của nó
Cách phức tạp nhất nhưng đồng thời cũng là cách chính xác nhất để giết một quy trình là thông qua PID ("Bộ nhận dạng quy trình") của nó. Bất kỳ biến thể nào trong số 3 biến thể này đều có thể phục vụ:
kill -TERM pid kill -SIGTERM pid kill -15 pid
Bạn có thể sử dụng tên của tín hiệu (TERM hoặc SIGTERM) mà bạn muốn gửi đến quá trình hoặc số nhận dạng của nó (15). Để xem danh sách đầy đủ các tín hiệu có thể xảy ra, tôi khuyên bạn nên kiểm tra hướng dẫn sử dụng. Để làm điều này, hãy chạy:
giết người
Hãy xem một ví dụ về cách diệt Firefox:
Đầu tiên, bạn phải tìm ra PID của chương trình:
ps -ef | grep firefox
Lệnh đó sẽ trả về một cái gì đó như sau:
1986? Sl 7:22 /usr/lib/firefox-3.5.3/firefox
Chúng tôi sử dụng PID được trả về bởi lệnh trên để kết thúc quá trình:
kill -9 1986
killall: giết một tiến trình bằng cách sử dụng tên của nó
Lệnh này rất dễ
killall process_name
Một điều cần lưu ý khi sử dụng phương pháp này là nếu có nhiều hơn một phiên bản của chương trình đó đang chạy, tất cả chúng sẽ bị đóng.
pkill: giết một quy trình bằng cách sử dụng một phần tên của nó
Có thể kết thúc một tiến trình bằng cách chỉ định tên đầy đủ hoặc một phần của tên. Điều đó có nghĩa là bạn không cần phải nhớ quá trình PID để gửi tín hiệu.
pkill part_process_name
Đổi lại, phương pháp này sẽ giết tất cả các tiến trình có chứa từ được nhập vào. Điều đó có nghĩa là nếu chúng ta mở 2 tiến trình có chung một từ trong tên thì cả hai sẽ bị đóng.
xkill: giết quá trình bằng cách chọn cửa sổ bằng chuột
Đây là phương pháp đơn giản và thiết thực nhất. Trong trường hợp xảy ra thảm họa, chỉ cần nhấn Alt + F2 để xuất hiện hộp thoại cho phép bạn chạy các lệnh. Từ đó, hãy chạy lệnh sau:
xkill
Con trỏ chuột sẽ biến đổi thành một hộp sọ nhỏ. Tất cả những gì còn lại là nhấp vào cửa sổ bạn muốn đóng và thì đấy. Quá trình tạm biệt.
Một số nhận xét cuối cùng
Cuối cùng, tôi muốn chia sẻ một số mẹo có thể hữu ích. Trong Linux, cũng như trong Windows, khi một tiến trình bị treo, cửa sổ được đề cập thường có thể được đóng lại bằng cách nhấp vào nút Đóng (có hình dạng giống như một dấu X). Sau một vài giây, một cửa sổ sẽ xuất hiện hỏi chúng ta nếu chúng ta thực sự muốn kết thúc quá trình vì nó không phản hồi đúng cách. Chúng tôi nói có và đó là nó.
Điều này có nghĩa là các phương pháp được mô tả ở đây nên được sử dụng khi không có gì xảy ra khi bạn nhấp vào nút Đóng của cửa sổ được đề cập.
Trong trường hợp có thảm họa lớn, đừng quên rằng trước khi nhấn có thể thực hiện khởi động lại "an toàn".
Cuối cùng, nó có thể rất hữu ích để tìm ra các quy trình hiện đang chạy. Đối với điều này, các môi trường máy tính để bàn khác nhau (GNOME, KDE, v.v.) có các công cụ đồ họa hỗ trợ tác vụ này. Tuy nhiên, trong trường hợp bạn không thể truy cập chúng hoặc chỉ muốn thực hiện từ thiết bị đầu cuối, bạn có thể thực hiện như sau:
hàng đầu
Trong trường hợp điều này không hoạt động hoặc bạn chưa cài đặt gói tương ứng, bạn luôn có thể chạy:
ps -A
Điều này sẽ liệt kê tất cả các tiến trình đang chạy, cùng với tên và PID tương ứng của chúng.
«Ps -ef | "grep firefox" không giống với "pgrep firefox"?
Cá nhân tôi sử dụng "pidof" để lấy PID.
Chúc mừng!
những gì tôi sử dụng nhiều nhất là:
~ $ đầu
hiển thị cho chúng tôi danh sách các quy trình đang hoạt động, sau đó nếu chúng tôi nhấn "k" hoặc viết "kill", nó sẽ yêu cầu chúng tôi cung cấp pid của quy trình để giết (chúng tôi đọc nó từ trên cùng) và sau đó nhập, để thoát khỏi đầu, chúng tôi nhấn "q ".
Mục nhập rất tốt, nhưng hình thức này có vẻ đơn giản hơn với tôi. Nếu thiết bị đầu cuối không chạy, chúng tôi thử ctrl + alt + f [1-6] và thực hiện từ đó.
Cảm ơn các bạn thiên tài nào đã giúp mình giúp mình với bài viết này !!!
Xin chào! Có thể là lệnh xkill chỉ làm cho chương trình X biến mất và vẫn mở không? Bởi vì nó luôn xảy ra với tôi rằng khi tôi đến gặp người quản lý tác vụ, tiến trình vẫn còn tồn tại và tôi phải giết nó.
Tôi thừa nhận điều đó, tôi là một người mới. Và các lệnh killall và pkill sẽ giúp tôi rất nhiều. Cảm ơn vì đã tải chúng lên, blog rất tốt.
¡Saludos!
Tôi khuyên bạn nên htop 😀 nó là tốt nhất cho điều đó ...
làm việc với ncurses
Sudo apt-get cài đặt htop
pidof không dành cho tất cả các Unix, ví dụ như Solaris không có lệnh đó, và điều đó khiến chúng ta phải sử dụng ps mạnh mẽ.
Liên quan
htop dài dòng hơn và thân thiện với người dùng
Trong trường hợp sử dụng PID, điều chính xác là $ kill PID gửi tín hiệu SIGTERM theo mặc định, trong trường hợp quá trình không phản hồi, $ kill -9 PID được sử dụng để gửi tín hiệu SIGKILL, cái sau loại bỏ quá trình mà không cho nó đóng cùng một cách chính xác (có thể có mất dữ liệu chẳng hạn). SIGTERM xin vui lòng, SIGKILL đưa cho anh ta một cái rìu 🙂
Cảm ơn bạn rất nhiều, tôi sẽ kiểm tra nó nếu nó xảy ra với tôi một lần nữa.
một truy vấn. Khi môi trường máy tính để bàn bị treo trong Ubuntu (tôi sử dụng Unity), nó có thể được khởi động lại mà không giết tất cả các tiến trình khác không ?. Tôi không rành về linux lắm và đôi khi tôi đang làm việc thì bị treo, điều duy nhất tôi làm là khởi động lại an toàn, nhưng tôi mất tất cả những gì tôi đang làm.
Tôi không biết liệu sự nghi ngờ của tôi có được hiểu không.
Liên quan
Một tiến trình ở trạng thái zombie không thể bị giết theo cách truyền thống.
Tại đây để biết thêm chi tiết: esdebian.org/wiki/matar-proceso-zombie
Để nâng cao hơn, làm thế nào để bạn giết một tiến trình ở trạng thái ZOMBIE?
chỉ để tạo ra một cuộc trò chuyện nhỏ 😀
Rất tốt, chỉ là những gì tôi cần ..
Sự thật là lệnh kill rất hữu ích. Có thể giết các tiến trình gây phiền nhiễu chỉ bằng cách gọi kill là điều tuyệt vời. Cuối cùng là một lệnh phục vụ một cái gì đó.
Câu hỏi lý thuyết: Giết một quy trình có nghĩa là nó ngừng hoạt động. Vì vậy, câu hỏi của tôi là ngược lại, nếu tôi muốn khởi động lại quá trình mà tôi đã giết, tôi phải làm thế nào?
tốt bạn đặt ./ (tên của quy trình) &
Với điều này, bạn chạy lại nó và PID của bạn cũng sẽ xuất hiện 😀
Tuyệt vời, tôi đã có thời gian tìm kiếm sự giúp đỡ như thế này. Nó rất hữu ích đối với tôi. Cảm ơn bạn rất nhiều vì đã chia sẻ.
Lời chào từ San Luis Potosí, Mexico.
Làm thế nào tôi có thể giết hai tiến trình biết PID của chúng trong cùng một lệnh?
Tôi nghĩ đó là 'giết [PID đầu tiên] [PID thứ hai]
Bài viết rất thú vị. Trang web này là trang web linux chính của tôi.
Tôi thường sử dụng:
ps rìu | grep process_name (cái này để định vị nó trên hệ thống)
kill -9 process_id
Tôi chia sẻ một khóa học bash trực tuyến miễn phí bao gồm:
https://aprendemia.com/cursos/curso-de-bash-scripting Hy vọng rằng nó sẽ hữu ích.
và nếu tôi muốn nó trở thành một hồ sơ trong linux chỉ có một hồ sơ đóng lại như nó phải như vậy?
ví dụ tôi có 2 hồ sơ firefox đang mở
nhưng tôi chỉ muốn đóng một hồ sơ duy nhất
hồ sơ 1
hồ sơ 2
Tôi chỉ muốn cấu hình 2 đóng vì lệnh phải như vậy
cảm ơn trước vì câu trả lời
làm thế nào tôi có thể giết các quy trình nền trước của ubuntu, chỉ với một dòng lệnh