Bir işlemin kimliğini bulmak için terminal komutu nedir


12

Komut satırını kullanarak bir işlemden çıkmak istiyorum, ancak işlemin kimliğini aramak için komutu hatırlayamıyorum. Bunu bilen var mı?

Yanıtlar:


13

Bir işlemin kimliğini bulma komutu (adı verilmiştir) pidof. Ancak amacınız süreci öldürmek olduğundan, pidofönce pidini bulmak için kullanmaktan daha iyi / daha kolay yollar vardır :

Öldürmek istediğiniz işlemin adıyla benzersiz bir şekilde tanımlandığı (veya bu adla tüm işlemleri öldürmek istediğiniz) varsayarsak, pidesini bilmeniz gerekmez. Sadece yapabilirsin killall processname.

Aynı ada sahip birden fazla işlem varsa, ancak bunlardan sadece birini öldürmek istiyorsanız, kullanmak pidofsize çok yardımcı olmaz, çünkü size pids verecektir, ancak hangisinin olduğunu belirlemek için size herhangi bir bilgi vermeyecektir. pids aslında öldürmek istediğiniz sürece aittir.

Bu durumda ps aux | grep processname, belirli bir ada sahip tüm işlemleri, üzerinde çalıştıkları konsolu (varsa) ve çağrıldıkları argümanları gösterecek şekilde yapabilirsiniz, bu da aradığınız işlemi tanımlamanızı umar. .

İşlem herhangi bir X penceresini açtıysa, xkillöldürmek için de kullanabilirsiniz (çağırın xkillve ardından pencereye tıklayın).


7

Sen bir göz olmalı pgrepve pkillen Linux ve UNIX sistemleri üzerinde bulunan iki çok kullanışlı ve güçlü araçları.

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

5

Kaçabilirsiniz ps -AÇalışmakta olan (kendi işlem kimliği ile) tüm işlemleri göstermek için terminalde.


grepBelirli bir işlemin adını aramak için boru :ps -A | grep 'my name'
Gabriel Staples

2

Ben de benzer bir sorun yaşadım. Kullandım pstree -p; bu bana İşlem Kimlikleri de dahil olmak üzere mevcut çalışan işlemleri gösterdi.


ilginç komut
jumpnett


1

Benim favorim pstree -p | grep $(program_name). Bu aslında süreci açığa çıkarır, vurgular ve parantez içindeki pid'i gösterir.

Bir sonraki favorim (özellikle süreçten tüm pidleri programlarken ve ihtiyaç duyulduğunda) pgrep -law "". Bu kelimenin tam anlamıyla size çalışan her pid (ardından mutlak yol ile) verir.

Bu, pgrep -lw ""pid ve ardından program adı için veya sadece pgrep -ltüm pidler için azaltılabilir

Elbette, belirli bir programın (veya programın bir kısmının) adını arayabilirsiniz. (yani pgrep -lw firef"4567 firefox" gibi bir şey görüntüleyecektir).


pstree -psH $(pgrep prgram_name)İlk dava için daha iyi olmaz mıydı ?
muru

Evet bu da işe yarıyor. Bunun için bir takma ad yapabilirsiniz. Ben sadece bir programın adını temsil etmek için $ () kullanıyordum; Dolar işareti nedeniyle $ (pgrep name) yazmanın biraz can sıkıcı olduğunu düşünüyorum, ancak bunun bir takma adı yardımcı olabilir.
dylnmc

0

Yinelenen bir soru üzerine @Ben'den gelen bu cevap sorunumu çözdü:

topTerminaldeki komutu kullanmayı düşünün .

   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.

üst adam aracılığıyla

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.