2011-11-14 13 views
82

Bir daemon işleminin pidini belirlemek için ps -ef | grep "keyword" kullanmak istiyorum (ps -ef çıkışında benzersiz bir dize var).ps -ef | grep anahtar kelimeden yardım alma

İşlemi pkill keyword ile öldürebilirim pid'i öldürmek yerine döndüren herhangi bir komut var mı?

cevap

175

pgrep-f seçeneklerini eklediğiniz sürece kullanabilirsiniz. Bu, pgrep'u yalnızca işlem adı yerine tüm komutta (argümanlar dahil) anahtar kelimelerle eşleştirir. man page itibaren

pgrep -f keyword 

:

-f       desen normalde sadece süreç adı ile eşleşir. -f ayarlandığında, tam komut satırı kullanılır. Eğer gerçekten pgrep kaçınmak istiyorsanız


, deneyin:

ps -ef | awk '/[k]eyword/{print $2}' 

Not Ekle [] anahtar kelimenin ilk harfi etrafında. Bu, awk komutunun kendisini eşlemekten kaçınmak için kullanışlı bir numaradır.

+1

teşekkürler :) linux için biraz yeni bu -f çalışır: P –

+1

Rica ederim, Dennis. –

+3

ps aşırı kullanılıyor ve çok az kullanılıyor. Gönderi için teşekkürler. –

38

komuta

ps -ef | grep "KEYWORD" | awk '{print $2}'

onları ANAHTAR KELİME ile süreçlerin size PID vermelidir deneyin (pidof veya pgrep çalışmıyor). Bu örnekte, awk, 2. sütunda olanı çıktıdan döndürüyor.

+1

Bu birden fazla pideden daha fazlasını döndürebildiğinden, ilk ekleyerek alabilirsiniz. kafa -1 '. – Kris

5

Bu linux geçerli: anahtar kelime pidof sana bir PID numarasını vermelidir

ps -C "keyword" -o pid= 

Bu komut kullanmak

8

ps -ef | grep KEYWORD | grep -v grep | awk '{print $2}'

+4

Belki bir yazım hatası mı? ps -ef | grep KEYWORD | grep -v grep | awk '{print $ 2}' – rmv

+0

İade edilen PID'yi "kill -9" a nasıl geçireceğinizi biliyor musunuz? – alybadawy

+0

@alybadawy sadece ekle '| xargs sonuna -9 'öldür – patte8