Lệnh đầu cuối để tìm ra id của tiến trình là gì


12

Tôi muốn thoát một quy trình bằng cách sử dụng dòng lệnh, nhưng tôi không thể nhớ lại lệnh để tra cứu ID của quy trình. Có ai biết điều đó không?

Câu trả lời:


13

Lệnh để tìm ra id của một tiến trình (được đặt tên của nó) là pidof. Tuy nhiên, vì ý định của bạn là giết quá trình, nên có những cách tốt hơn / dễ dàng hơn là sử dụng pidofđể tìm pid trước:

Giả sử quá trình bạn muốn giết được xác định duy nhất bằng tên của nó (hoặc bạn muốn giết tất cả các quy trình có tên đó), bạn không cần phải biết pid của nó. Bạn chỉ có thể làm killall processname.

Nếu có nhiều quy trình có cùng tên, nhưng bạn chỉ muốn giết một trong số chúng, sử dụng pidofsẽ không giúp ích gì cho bạn, vì nó sẽ cung cấp cho bạn các khoản trợ cấp, nhưng nó sẽ không cung cấp cho bạn bất kỳ thông tin nào để xác định thông tin nào trong số đó Pids thuộc về quá trình bạn thực sự muốn giết.

Trong trường hợp này, bạn có thể làm điều ps aux | grep processnameđó sẽ hiển thị tất cả các quy trình với tên đã cho cũng như bảng điều khiển chúng đang chạy (nếu có) và các đối số mà chúng được gọi, hy vọng cho phép bạn xác định quy trình bạn đang tìm kiếm .

Nếu quá trình mở bất kỳ cửa sổ X nào, bạn cũng có thể sử dụng xkillđể hủy (gọi xkillvà sau đó nhấp vào cửa sổ).


7

Bạn nên xem qua pgreppkill, hai tiện ích rất tiện dụng và mạnh mẽ được tìm thấy trên hầu hết các hệ thống Linux và UNIX.

$ apropos pgrep
pgrep (1) - look up or signal processes based on name and other attributes

5

Bạn có thể chạy ps -Atrong thiết bị đầu cuối để hiển thị tất cả các quy trình (với ID quy trình của chúng) hiện đang chạy.


Pipe để greptìm kiếm tên của quá trình cụ thể:ps -A | grep 'my name'
Gabriel Staples

2

Tôi cũng có một vấn đề tương tự. Tôi đã sử dụng pstree -p; điều này cho tôi thấy các quy trình đang chạy hiện tại bao gồm ID tiến trình.


lệnh thú vị
jumpnett


1

Yêu thích của tôi là pstree -p | grep $(program_name). Điều này thực sự chào đón quá trình, làm nổi bật nó và hiển thị pid trong ngoặc đơn.

Yêu thích tiếp theo của tôi (đặc biệt là khi lập trình và cần tất cả các pids từ quá trình) là pgrep -law "". Điều này theo nghĩa đen cung cấp cho bạn mọi pid chạy theo ứng dụng (với đường dẫn tuyệt đối).

Điều này có thể được giảm xuống pgrep -lw ""cho pid theo sau là tên chương trình hoặc thậm chí chỉ pgrep -lcho tất cả các pid

Tất nhiên, bạn có thể tìm kiếm một chương trình cụ thể (hoặc một phần của tên chương trình). (tức là pgrep -lw firefcó thể sẽ hiển thị một cái gì đó như "4567 firefox").


Sẽ không pstree -psH $(pgrep prgram_name)tốt hơn cho trường hợp đầu tiên?
muru

Vâng, nó cũng hoạt động. Bạn có thể tạo một bí danh cho điều đó. Tôi chỉ sử dụng $ () để thể hiện tên của chương trình; Tôi nghĩ rằng việc gõ $ (tên pgrep) hơi khó chịu vì ký hiệu đô la, nhưng tôi nghĩ một bí danh có thể hữu ích.
dylnmc

0

Câu trả lời này, từ @Ben cho một câu hỏi trùng lặp , đã giải quyết vấn đề của tôi:

Xem xét sử dụng toplệnh trong thiết bị đầu cuối.

   The  top  program  provides  a dynamic real-time view of a running
   system.  It can display system summary information as  well  as  a
   list  of processes or threads currently being managed by the Linux
   kernel.  The types of system summary  information  shown  and  the
   types,  order  and size of information displayed for processes are
   all user configurable and that configuration can be  made  persis‐
   tent across restarts.

thông qua người đàn ông hàng đầu

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.