私は長い間/proc/self
を使用して、/proc/self/maps
などのプロセス関連情報を読み取っています。
ただし、macOSなどの一部のUNIXバリアントでは、procfs
ファイルシステムは実装されていません。しかし、この link が述べているように、sysctl
を使用して同様の情報を取得できるはずです。
sysctl -a
からの出力を読むと、情報が特定のプロセスに直接関連付けられているのではなく、システムまたはカーネルに関連付けられていることがわかりました。
では、どうすればsysctl
を使用して、macOSなどのUNIXバリアントでLinuxディストリビューションの/proc/self
に通常存在する情報を読み取ることができますか?
私は例えばしたいmacOSで/proc/self/maps
を取得します。
Sysctlには主にシステム全体のパラメーターが含まれているというあなたの観察は適切です。また、sysctl
(SYStem ConTroLを示唆している)という名前、および manページ の「sysctl - get or set kernel state
」の説明からいくらか続いています。
一部のBSDシステムは、オプションのprocfs
ファイルシステムサポートを提供します。これは、FreeBSDなどの/proc
の下にマウントできます。
# mount -t procfs procfs /proc
これは一部の機能を提供しますが、特定のネイティブBSDプロセスの実行時統計への明確な問い合わせではなく、エミュレーションモードでLinuxバイナリを実行する際の互換性の目的でおそらく最も頻繁に使用されます。残念ながら、私の知る限り、OSXはprocfs
ファイルシステムをサポートしていません。
さらに一般的には、BSDシステムは/proc
を使用しないため、特定の/proc
ベースのクエリを置き換えるために何を使用するかについての答えは、特定のクエリが何であるかによって異なります。投稿の最近の編集を考えると、このコマンドは特定のプロセスのメモリ使用量を表示するのに役立つ場合があります。
$ Sudo vmmap $$