pgrep dan pkill alternatif di mac os x?


23

Apakah ada alternatif pgrepdan pkillperintah pada Mac OS X atau haruskah saya membuat alias untuknya menggunakan perintah lain yang tersedia untuk saya?

Jawaban:


11

Anda bisa menggunakan MacPorts :sudo port install proctools

Inilah hasil dari port search pgrep:

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

3
proctools juga tersedia melalui Homebrew
Andrew Marshall

@AndrewMarshall benar. Untuk mencoba brew install proctools
minuman rumahan

18

Di OS X Lion dengan Homebrew :

$ brew install proctools

Ini mengunduh, membangun dan menginstal pgrep, pkilldan pfind.


Mungkinkah membangun GUI berfungsi seperti halnya xkill tetapi untuk OSX
Jonas Oestman

11

Anda tidak memerlukan alternatif lagi: sejak MacOS 10.8 pgrepdan pkilltersedia secara default.


10

Dengan asumsi bahwa Anda menggunakan beberapa versi Bash yang relatif baru di Mac, Anda bisa menulis versi Anda sendiri pgrepsebagai fungsi dan kemudian menambahkannya ke .bashrcfile Anda :

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

Adapun pkillAnda dapat menggunakan yang berikut:

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

Saya menggunakan Z Shell, meskipun seharusnya tidak ada masalah dalam mengadaptasi ini.
Eimantas

1
atau / bin / kill $ (ps ax | awk '$ 5 ~ /' "$ 1" '/ {print $ 1}') untuk pgrep yang lebih setia (hanya nama proses, bukan argumen. Saya menggunakan / bin / membunuh karena kebiasaan dibutuhkan lebih dari satu PID untuk membunuh. Ada trik lain, jika Anda mengendalikan regexp agar tidak perlu 'grep -v grep' - dengan begitu Anda bisa pkill greps!)
jrg

Saya sarankan Anda menghapus functionkata kunci, itu sudah usang. Lihat posting ini
SiegeX

Kamu Menakjubkan.
Bijan

2

Proctools termasuk pgrepdan pkilldan tersedia untuk OpenBSD dan OSX. Itu belum diperbarui dalam beberapa saat, tetapi masih harus bekerja (setidaknya pada OSX yang jarang memodifikasi ABI-nya).


Proctools tidak dapat dikompilasi dengan baik dengan Snow Leopard

1

Anda bisa mencoba killall. Itu membunuh proses dengan nama. Setiap proses yang cocok dengan string yang Anda berikan terbunuh.

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

Jika kamu melakukan

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

itu akan menunjukkan kepada Anda daftar proses yang akan dibunuh seperti di bawah ini.

kill -TERM 70836

Jika Anda menginginkan sinyal yang berbeda, lakukan hal berikut

killall -9 processname

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.