mac os x'deki pgrep ve pkill alternatifleri?


23

Mac OS X'te alternatifler pgrepve pkillkomutlar var mı, yoksa benim için mevcut olan diğer komutları kullanarak onlar için takma adlar oluşturmalı mıyım?

Yanıtlar:


11

MacPorts'u kullanabilirsiniz :sudo port install proctools

İşte sonucu port search pgrep:

proctools @0.4pre1 (sysutils)
    pgrep, pkill and pfind for OpenBSD and Darwin (Mac OS X)

3
proctools ayrıca Homebrew
Andrew Marshall

@AndrewMarshall haklı. Homebrew denemek içinbrew install proctools
29:15 cwd


11

Artık bir alternatife ihtiyacınız yok: MacOS 10.8'den beri pgrepve pkillvarsayılan olarak kullanılabilir durumdasınız.


10

Mac'te Bash'in bazı yeni sürümlerini kullandığınızı varsayarsak, pgrepişlev olarak kendi sürümünüzü yazabilir ve sonra bunu .bashrcdosyanıza ekleyebilirsiniz :

function pgrep() {
    ps aux | grep $1 | grep -v grep
}

gelince pkillaşağıdakileri kullanabilirsiniz:

function pkill() {
    local pid
    pid=$(ps ax | grep $1 | grep -v grep | awk '{ print $1 }')
    kill -9 $pid
    echo -n "Killed $1 (process $pid)"
}

Z Kabuğumdayım, buna uyum sağlamada herhangi bir problem olmamalı.
Eimantas

1
ya da / bin / kill $ (ps ax | awk '$ 5 ~ /' "$ 1" '/ {print $ 1}') daha sadık bir pgrep için (yalnızca işlem adı, args değil. Öldürmek için birden fazla PID güvenilir bir şekilde sürmektedir.Herhangi bir püf noktası vardır, eğer regexp'in kontrolünü hiçbir zaman 'grep -v grep' yapmak zorunda kalmayacaksanız kontrol edebilirsiniz - bu şekilde grep yapabilirsiniz!)
jrg

functionAnahtar kelimeyi kaldırmanızı öneririm , kullanımdan kaldırılmıştır. Bu yazıya
SiegeX

Müthişsin.
Bijan

2

Proctools içerir pgrepve pkillve OpenBSD ve OSX için kullanılabilir. Bir süredir güncellenmedi, ancak yine de çalışması gerekiyor (en azından ABI'sini nadiren değiştiren OSX'te).


Proctools, Snow Leopard ile iyi

1

öldürmeyi deneyebilirsin. İşlemleri ada göre öldürür. Girdiğiniz dizgiye uyan tüm işlemler öldürülür.

killall httpd ( kill all apache processes )
killall php ( kill all php process )

Yaparsan

killall -s man ( kill any manual page processes, if a user is using man [command]

Size aşağıdaki gibi öldürülecek olan işlemlerin bir listesini gösterecektir.

kill -TERM 70836

Farklı bir sinyal istiyorsanız aşağıdakileri yapın

killall -9 processname

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.