Belirli bir süreci aramalı ve bu süreci durdurmalıyım. Bunun gibi bir komut yazdım:
ps -e | grep dmn | awk '{print $1}' | kill
İşlem adının olduğu yer dmn
. Ama bu çalışmıyor. Süreçleri ada ve kill
onlara göre nasıl bulabilirim .
Belirli bir süreci aramalı ve bu süreci durdurmalıyım. Bunun gibi bir komut yazdım:
ps -e | grep dmn | awk '{print $1}' | kill
İşlem adının olduğu yer dmn
. Ama bu çalışmıyor. Süreçleri ada ve kill
onlara göre nasıl bulabilirim .
Yanıtlar:
kill $(ps -e | grep dmn | awk '{print $1}')
kill $(ps -efw | grep dmn | grep -v grep | awk '{print $2}')
neden emin değilim ve yeterince ilgilenmiyorum.
kill
, kalıbı aramaya çalışan 'grep' sürecini bile öldürmeye çalıştığı için
\n
Her awk'den sonra olması gerekmiyor awk '{print $1"\n"}'
mu?
Kaldırmak istediğiniz birden fazla işlem olması durumunda, bunu kullanabilirsiniz:
ps -efw | grep dmn | grep -v grep | awk '{print $2}' | xargs kill
Not: Grep sürecinin kendisini çıktıdan kaldırmanız gerekir, bu yüzden grep -v grep
kullanılır.
Buna ihtiyacınız olmayabilir pipe
, eğer pidof
komutunuz varsa ve görüntü adını biliyorsanız, bunu şöyle yaptım:
kill $(pidof synergyc)
$()
Bunu, esasen piponun yapacağı gibi, kill'in kullanabileceği bir değişkene dönüştürdüğü için anlıyorum. Diğer seçeneklerden daha kısa ve anlaşılması daha kolay ama aynı zamanda daha az esnek ve daha doğrudan olabilir.
for procid in $(ps -aux | grep "some search" | awk '{print $2}'); do kill -9 $procid; done
merhaba arkadaşlar .. bunu for döngüsü kullanarak yapabiliriz.
"Bazı arama" burada, aramak istediğiniz herhangi bir işlem adıdır, örneğin "java", diyelim ki java işleminin sayısı 200+, bu yüzden tek tek öldürmek çok tipik olacaktır.
böylece yukarıdaki komutu kullanabilirsiniz.
Teşekkürler.
pgrep
-F seçeneği ile kullanın .
kill $(pgrep -f dmn)
pgrep
neden sadece olmasın pkill -f dmn
?
$()
sözdizimi:kill $(ps -e | grep dmn | awk '{print $1}')
.