Kami dapat menginstal GNU coreutils via brew
. Tapi tidak ada ps
dalam utils . Bisakah kita menggunakan gnu ps
di OS X?
Saya ingin menggunakan GNU ps
karena memiliki lebih banyak opsi dan fitur.
ps
karena memiliki lebih banyak opsi dan fitur.
Kami dapat menginstal GNU coreutils via brew
. Tapi tidak ada ps
dalam utils . Bisakah kita menggunakan gnu ps
di OS X?
Saya ingin menggunakan GNU ps
karena memiliki lebih banyak opsi dan fitur.
ps
karena memiliki lebih banyak opsi dan fitur.
Jawaban:
Tidak ada program ps portabel. Perintah ps yang tersedia di linux, seperti yang disebutkan orang lain, dari paket "procps". Alasan mengapa ini tidak dapat porting ke OSX adalah karena kernel Linux dan OSX tidak mengekspos informasi ini dengan cara yang sama. Linux menggunakan sistem file pseudo di / proc, sedangkan OSX menggunakan fungsi sysctl. Sistem lain dapat menggunakan salah satu mekanisme tetapi menyediakan data dalam format yang berbeda, atau mungkin memerlukan program seperti ps untuk membaca langsung dari memori kernel.
Secara umum tidak ada standar untuk bagaimana informasi proses tersedia untuk program-program seperti ps dan atas; sehingga program harus dirancang untuk sistem operasi tertentu. Jika ada fitur tertentu yang hilang dari OSX ps, Anda harus menemukan program lain yang dapat melakukannya, atau menulis sendiri (lihat manual sysctl, khususnya KERN_PROC sebagai titik awal), atau ubah ps yang ada perintah untuk menambahkan fitur.
Sebagai alternatif, jika Anda bisa mendapatkan apa yang Anda butuhkan dengan mem-parsing output dari perintah ps itu sendiri, Anda mungkin dapat menulis program portabel - output dengan -o
opsi ini cukup dapat diandalkan di seluruh platform, terutama jika Anda merujuk pada standar UNIX untuk nama kolom yang akan digunakan.
/proc
file satu-satunya metode yang disediakan kernel Linux untuk mendapatkan daftar proses, atau apakah ada juga pemanggilan sistem terpisah yang menyediakan informasi itu?
Tidak - karena tidak ada. Mengenai mengapa tidak ada builtin ps
dalam coreutils
paket GNU , lihat jawaban ini di Forum Unix & Linux.
Formula alternatif terbaik yang tersedia melalui Homebrew adalah psgrep
:
psgrep adalah skrip Bash shell kecil yang mencari daftar proses (seperti yang diperoleh oleh ps (1) ) menggunakan grep utilitas mengagumkan (1) untuk kekuatannya.
Yang mengatakan, Anda masih dapat menggunakan psgrep
untuk berperilaku sebagai OS X ps
akan. Sebagai contoh:
OPTIONS
-a Search the process list using BSD's "ps aux" format. This option
includes all users' processes in the search.
-b Search the process list using BSD's "ps ux" format (default).
This option only includes the running user's processes.
pgrep
juga tersedia melalui brew
, yang secara sintaksis lebih dekat dengan ps
, tetapi kurang efisien daripada psgrep
:
psgrep (1) lebih berguna daripada pgrep (1) karena tidak hanya dapat mencari daftar proses dan mengembalikan PID, ia dapat memberikan informasi yang lebih berguna seperti UID, GID, penggunaan memori / CPU, kesenangan, dan hal lain yang didukung oleh ps.
Semua menekankan milikku.
pgrep
juga merupakan bagian dari versi terbaru OS X
type -a pgrep
pgrep is /usr/local/bin/pgrep
pgrep is /usr/bin/pgrep
proctools
paket dari MacPorts atau Homebrew menyediakan pgrep
dan pkill
apa yang secara pribadi saya cari ketika saya muncul di sini.
ps
bukan bagian dari GNU coreutils menurut Wikpedia . Versi yang datang dengan distribusi Linux saya tampaknya berasal dari procps , tetapi sepertinya tidak ada rumus untuk itu di homebrew. Ada rumus pstree
yang dapat memberi Anda tampilan pohon yang bagus, dan juga htop
merupakan penampil proses yang baik.
ps
ataups -ef
di terminal pada OSX? bekerja untuk saya di OSX 10.7.5 tanpa modifikasi, pada dua mesin yang berbeda. Ada di / bin / ps