GNU coreutilsはを介してインストールできbrew
ます。しかし、utilsにはありませんps
。ps
OS Xでgnuを使用できますか?
GNU ps
にはより多くのオプションと機能があるため、GNUを使用したいと思います。
ps
より多くのオプションと機能を持っているのでGNUを使いたかった。
GNU coreutilsはを介してインストールできbrew
ます。しかし、utilsにはありませんps
。ps
OS Xでgnuを使用できますか?
GNU ps
にはより多くのオプションと機能があるため、GNUを使用したいと思います。
ps
より多くのオプションと機能を持っているのでGNUを使いたかった。
回答:
移植可能なpsプログラムはありません。Linuxで利用可能なpsコマンドは、他の人が述べたように、「procps」パッケージからです。これをOSXに移植できない理由は、LinuxとOSXカーネルが同じ方法でこの情報を公開しないためです。Linuxは/ procで擬似ファイルシステムを使用しますが、OSXはsysctl関数を使用します。他のシステムはどちらかのメカニズムを使用しますが、データを異なる形式で提供するか、psのようなプログラムがカーネルのメモリから直接読み取る必要があります。
一般に、psやtopなどのプログラムがプロセス情報を利用する方法についての標準はありません。そのため、プログラムは特定のオペレーティングシステム用に設計する必要があります。OSX psに特定の機能がない場合は、それを実行できる別のプログラムを見つけるか、自分で作成するか(sysctlマニュアル、特にKERN_PROCを開始点として参照)、または既存のpsを変更する必要があります機能を追加するコマンド。
あるいは、psコマンド自体の出力を解析することで必要なものを取得できる場合、移植性のあるプログラムを作成できる場合があります- -o
オプションを使用した出力は、特にUNIX標準を参照する場合、プラットフォーム間でかなり信頼できます使用する列名。
/proc
Linuxカーネルがプロセスのリストを取得するために提供する唯一の方法はファイルシステムですか、またはその情報を提供する個別のシステムコールもありますか?
いいえ-存在しないため。なぜ何の組み込みがないps
GNUの中にcoreutils
パッケージ、参照のUnixとLinuxフォーラム上でこの答えを。
Homebrewを介して利用可能な最適な代替式はpsgrep
次のとおりです。
psgrepは、強力なユーティリティgrep(1) を使用して(ps(1)で取得した)プロセスリストを検索する小さなBashシェルスクリプトです。
そうは言っても、psgrep
OS Xのように動作するために使用できますps
。例えば:
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
はbrew
、を介しても利用できます。これは、構文的にはに近いですがps
、以下よりも効率的ではありませんpsgrep
。
psgrep(1)はpgrep(1)よりも便利です。プロセスリストを検索してPIDを返すだけでなく、UID、GID、メモリ/ CPU使用率、ナイスネス、その他サポートされているものなど、より有用な情報を提供できるからです。 PSによって。
すべてが私のものです。
pgrep
同様にOS Xの最近のバージョンの一部である
type -a pgrep
pgrep is /usr/local/bin/pgrep
pgrep is /usr/bin/pgrep
ps
またはps -ef
端末で実行しようとしましたか?OSX 10.7.5で2つの異なるマシンで修正なしで動作します。これは、中/ binに/ psのだ