アクティビティモニタ系アプリに組み込まれた、Mac用のプロセスインスペクタ。
プロセスをクリックすると、そのドロワーに、属するアプリ、コード署名とチームID、エンタイトルメント、上位プロセスとlaunchdエージェント、コマンドラインの全文、そして起動してから使ったCPU時間、メモリ、開いているファイル、待ち受けポートが表示されます。アプリなら、バージョン、バンドルID、Info.plistも加わります。CSVとして保存することも、ターミナルのvitals processで同じ内容を得ることもできます。
- バージョン
- 156.0.8078.74
- バンドルID
- com.google.Chrome
- アーキテクチャ
- ユニバーサル · x86_64 · arm64
- 署名
- Google LLC · チームID EQHXZ8M8AV
- 保護
- 強化されたランタイムサンドボックスなし
- ユーザ
- me
- 実行時間
- 6h 14m
- 場所
- /Applications/Google Chrome.app
- バージョン
- 2.15
- バンドルID
- com.apple.Terminal
- アーキテクチャ
- Appleシリコン · arm64e
- 署名
- Apple
- 保護
- 強化されたランタイムなしサンドボックスなし
- ユーザ
- me
- 実行時間
- 2d 6h
- 場所
- /System/Applications/Utilities/Terminal.app
- バージョン
- 4.88.1
- バンドルID
- com.docker.docker
- アーキテクチャ
- Appleシリコン · arm64
- 署名
- Docker Inc · チームID 9BNSXJN65R
- 保護
- 強化されたランタイムサンドボックスなし
- ユーザ
- me
- 実行時間
- 3d 1h
- 場所
- /Applications/Docker.app
- プロセスID
- 48190
- 上位プロセス
- launchd (1)
- 実行時間
- 6h 14m
- バンドルID
- com.google.Chrome
- バージョン
- 156.0.8078.74
- アーキテクチャ
- ユニバーサル · x86_64 · arm64
- 署名
- Google LLC · チームID EQHXZ8M8AV
- 強化されたランタイム
- はい
- サンドボックス
- いいえ
- エンタイトルメント
- 1
- CPU時間
- 42m 10s ユーザ 32m 54s · 78%システム 9m 16s · 22%
- メモリ
- 412 MB · ピーク672 MBの61%
- スレッド
- 64
- 開いているファイル
- 318
- プロセスID
- 48211
- 上位プロセス
- Google Chrome (48190)
- 起動元
- Google Chrome (48190)
- 実行時間
- 6h 12m
- バージョン
- 156.0.8078.74
- アーキテクチャ
- ユニバーサル · x86_64 · arm64
- 引数
- --type=renderer --lang=en-US --num-raster-threads=4 --enable-zero-copy
- 署名
- Google LLC · チームID EQHXZ8M8AV
- 強化されたランタイム
- はい
- サンドボックス
- いいえ
- エンタイトルメント
- 1
- CPU時間
- 12m 40s ユーザ 10m 23s · 82%システム 2m 17s · 18%
- メモリ
- 1.92 GB · ピーク2.18 GBの88%
- スレッド
- 23
- 開いているファイル
- 96
- プロセスID
- 48193
- 上位プロセス
- Google Chrome (48190)
- 起動元
- Google Chrome (48190)
- 実行時間
- 6h 14m
- バージョン
- 156.0.8078.74
- アーキテクチャ
- ユニバーサル · x86_64 · arm64
- 引数
- --type=gpu-process --lang=en-US --gpu-preferences=UAAAAAAAAADgAAAEAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAA
- 署名
- Google LLC · チームID EQHXZ8M8AV
- 強化されたランタイム
- はい
- サンドボックス
- いいえ
- エンタイトルメント
- 1
- CPU時間
- 18m 2s ユーザ 12m 37s · 70%システム 5m 25s · 30%
- GPU
- 3%
- メモリ
- 842 MB · ピーク904 MBの93%
- スレッド
- 31
- 開いているファイル
- 142
- プロセスID
- 48377
- 上位プロセス
- Google Chrome (48190)
- 起動元
- Google Chrome (48190)
- 実行時間
- 3h 40m
- バージョン
- 156.0.8078.74
- アーキテクチャ
- ユニバーサル · x86_64 · arm64
- 引数
- --type=renderer --lang=en-US --num-raster-threads=4 --enable-zero-copy
- 署名
- Google LLC · チームID EQHXZ8M8AV
- 強化されたランタイム
- はい
- サンドボックス
- いいえ
- エンタイトルメント
- 1
- CPU時間
- 4m 51s ユーザ 4m 2s · 83%システム 49s · 17%
- メモリ
- 1.31 GB · ピーク1.36 GBの96%
- スレッド
- 21
- 開いているファイル
- 88
- プロセスID
- 581
- 上位プロセス
- launchd (1)
- 実行時間
- 2d 6h
- バンドルID
- com.apple.Terminal
- バージョン
- 2.15
- アーキテクチャ
- Appleシリコン · arm64e
- 署名
- Apple
- 強化されたランタイム
- いいえ
- サンドボックス
- いいえ
- エンタイトルメント
- 6
- CPU時間
- 3m 12s ユーザ 2m 2s · 64%システム 1m 10s · 36%
- メモリ
- 148 MB · ピーク208 MBの71%
- スレッド
- 12
- 開いているファイル
- 58
- プロセスID
- 60120
- 上位プロセス
- login (60118)
- 起動元
- ターミナル (581)
- 実行時間
- 2d 5h
- アーキテクチャ
- Appleシリコン · arm64e
- 引数
- -zsh
- 署名
- Apple
- 強化されたランタイム
- いいえ
- サンドボックス
- いいえ
- CPU時間
- 1.2s ユーザ 0.7s · 58%システム 0.5s · 42%
- メモリ
- 12 MB · ピーク20 MBの60%
- スレッド
- 1
- 開いているファイル
- 8
- プロセスID
- 60412
- 上位プロセス
- zsh (60120)
- 起動元
- ターミナル (581)
- 実行時間
- 2d 4h
- アーキテクチャ
- Appleシリコン · arm64
- 引数
- node_modules/.bin/next dev --port 3000
- 署名
- Node.js Foundation · チームID HX7739G8FX
- 強化されたランタイム
- はい
- サンドボックス
- いいえ
- CPU時間
- 1h 52m ユーザ 1h 42m · 91%システム 10m 5s · 9%
- メモリ
- 486 MB · ピーク797 MBの61%
- スレッド
- 19
- 開いているファイル
- 203
- 待ち受けポート
- 3000
- プロセスID
- 60533
- 上位プロセス
- zsh (60120)
- 起動元
- ターミナル (581)
- 実行時間
- 14s
- アーキテクチャ
- Appleシリコン · arm64
- 引数
- node_modules/.bin/vitest run --coverage
- 署名
- Node.js Foundation · チームID HX7739G8FX
- 強化されたランタイム
- はい
- サンドボックス
- いいえ
- CPU時間
- 9.1s ユーザ 8.0s · 88%システム 1.1s · 12%
- メモリ
- 391 MB · ピーク391 MBの100%
- スレッド
- 27
- 開いているファイル
- 412
- プロセスID
- 20288
- 上位プロセス
- launchd (1)
- 実行時間
- 3d 1h
- バンドルID
- com.docker.docker
- バージョン
- 4.88.1
- アーキテクチャ
- Appleシリコン · arm64
- 署名
- Docker Inc · チームID 9BNSXJN65R
- 強化されたランタイム
- はい
- サンドボックス
- いいえ
- エンタイトルメント
- 7
- CPU時間
- 6m 4s ユーザ 4m 31s · 74%システム 1m 33s · 26%
- メモリ
- 112 MB · ピーク233 MBの48%
- スレッド
- 22
- 開いているファイル
- 74
- プロセスID
- 20311
- 上位プロセス
- Docker (20288)
- 起動元
- Docker (20288)
- 実行時間
- 3d 1h
- バージョン
- 4.88.1
- アーキテクチャ
- Appleシリコン · arm64
- 引数
- -watchdog -max-restarts 5
- 署名
- Docker Inc · チームID 9BNSXJN65R
- 強化されたランタイム
- はい
- サンドボックス
- いいえ
- エンタイトルメント
- 7
- CPU時間
- 3h 8m ユーザ 2h 0m · 64%システム 1h 8m · 36%
- メモリ
- 1.57 GB · ピーク2.04 GBの77%
- スレッド
- 48
- 開いているファイル
- 241
- プロセスID
- 20340
- 上位プロセス
- com.docker.backend (20311)
- 起動元
- Docker (20288)
- 実行時間
- 12s
- バージョン
- 4.88.1
- アーキテクチャ
- Appleシリコン · arm64
- 署名
- Docker Inc · チームID 9BNSXJN65R
- 強化されたランタイム
- はい
- サンドボックス
- いいえ
- エンタイトルメント
- 1
- CPU時間
- 2.0s ユーザ 1.6s · 80%システム 0.4s · 20%
- メモリ
- 64 MB · ピーク64 MBの100%
- スレッド
- 9
- 開いているファイル
- 31
- プロセスID
- 20318
- 上位プロセス
- com.docker.backend (20311)
- 起動元
- Docker (20288)
- 実行時間
- 3d 1h
- バージョン
- 4.88.1
- アーキテクチャ
- Appleシリコン · arm64
- 署名
- Docker Inc · チームID 9BNSXJN65R
- 強化されたランタイム
- はい
- サンドボックス
- いいえ
- エンタイトルメント
- 3
- CPU時間
- 1h 4m ユーザ 31m 12s · 49%システム 32m 48s · 51%
- メモリ
- 38 MB · ピーク52 MBの73%
- スレッド
- 14
- 開いているファイル
- 46
数値はシミュレーションです。WebページはMacの情報を読み取れませんし、読み取るべきでもありません。
プロセスの裏にあるアプリと、そのコード署名とエンタイトルメント。
ドロワーはまず、プロセスが属するアプリと、どんな種類のプロセスか(ブラウザのタブ、機能拡張、GPUプロセス、開発サーバ)を表示します。続いてコード署名があり、開発者名とチームID、強化されたランタイムとサンドボックスを使っているか、持っているすべてのエンタイトルメント、そしてAppleシリコン向け、Intel向け、その両方向けのどれでビルドされているか、Rosettaで実行されているかがわかります。
- 属するアプリと、タブ、機能拡張、ヘルパーのどれか
- コード署名とチームID。Apple自身のものはApple
- 強化されたランタイム、サンドボックス、すべてのエンタイトルメント
- Appleシリコン、Intel、その両方のどれ向けか、Rosettaで実行されているか
上位プロセス、launchdエージェント、コマンドラインの全文。
どのプロセスにも上位プロセスがあり、Vitalsはその名前を、起動したアプリとともに示します。バックグラウンドプロセスなら、ログイン時にそれを起動するlaunchdのエージェントまたはデーモンも示します。コマンドラインの全文があれば、ただのnodeやpythonも、知っているプロジェクトの開発サーバだとわかります。その下には、それが起動した下位プロセスが、それぞれワンクリックで開けるように並びます。
- 上位プロセスと起動したアプリ、それぞれリンクで
- ログイン時に起動するlaunchdのエージェントまたはデーモン
- コマンドラインの全文と、開けば環境も
- 下位プロセス、それぞれの数値つき
起動してからのCPU時間、メモリのピーク、開いているファイル、待ち受けポート。
パーセンテージが示すのは、今この1秒のことです。ドロワーは、そのプロセスの起動からこれまでのすべてを示します。起動してからのCPU時間を、自身の処理とカーネルがそのプロセスのために行った処理に分けて。今のメモリを、これまでに保持した最大量と比べて。そしてスレッド、開いているファイル、ページイン、読み込みと書き込みのバイト数、待ち受けているポート。ドロワーを開いている間は、CPUとメモリのリアルタイムのグラフも表示されます。
- CPU時間を、ユーザとシステムに分けて
- 今のメモリを、起動してからのピークに対する割合で
- スレッド、開いているファイル、ページイン、ディスクの読み込みと書き込み
- 待ち受けポートと、ドロワーを開いている間のライブグラフ
アプリのバージョン、バンドルID、Info.plistと、その下のすべてのプロセス。
アプリを開くと、“詳細”カードにバージョン、バンドルID、場所、コード署名、起動元が表示され、Info.plistの全文もワンクリックで開けます。その下にプロセスが並び、どれもワンクリックで詳細が開きます。起動したばかりのものには“新規”の印が付き、直近10分間に終了したものもリストに残るので、クラッシュや、来てすぐ去ったヘルパーも見失いません。
- バージョン、バンドルID、Info.plistの全文
- すべてのプロセス。起動したばかりのものには“新規”の印
- 最近終了:直近10分間に終了したもの
- 表の列を選び、
/a regex/で絞り込み
プロセスをCSVとして書き出すか、ターミナルでvitals processを実行します。
どのドロワーにも書き出しメニューがあります。“テキストとしてコピー”はメッセージやバグ報告に、“CSVとして保存”はスプレッドシートに使え、Info.plistとエンタイトルメントも含まれます。ターミナルではvitals processが、名前またはPIDで指定したどのプロセスについても同じ内容を返し、AIアシスタントはMCPのprocess_detailsツールでそれを取得します。
- テキストとしてコピー、またはCSVとして保存
vitals process node、またはPIDで。スクリプトには--json--envで環境、--plistでInfo.plistを追加- MCP経由でClaude、Codex、Cursorが使う
process_detailsツール
プロセスインスペクタ:これまでとVitals
アクティビティモニタの「詳細を表示」ウインドウでは、プロセスの上位プロセス、ユーザ、CPU時間、メモリ、開いているファイルとポート、サンプルがわかります。誰が署名したか、ただのnodeがどのアプリのものか、ログイン時に何が起動するのか、コマンドラインの全文が何だったかはわかりません。それらにはターミナルを開くことになります。署名にはcodesign、引数にはps、起動元にはlaunchctl、ポートにはlsof、Info.plistにはplutilです。
たいていの疑問はもっと単純です。これは何? Helperという名前のプロセス、誰も起動した覚えのないpython、com.apple.somethingのような名前でコアの半分を使っている何か。自分がインストールしたアプリの一部なのか、Appleのものなのか、動いていていいものなのか。
Vitalsは1つのドロワーで答えます。プロセスが属するアプリとプロセスの種類、コード署名とエンタイトルメント、上位プロセスとコマンドライン、それが起動したプロセス、そして起動してから使ったCPU時間、メモリ、ファイル、ポート。その下にバージョン、Info.plist、エンタイトルメントが折りたたまれています。同じ答えが、CSVとしても、ターミナルのvitals processとしても、AIアシスタント向けのツールとしても得られます。
Vitalsのどこにあるか
タブ、メニューバー項目、設定を、使う順に並べました。
- 01
プロセスをクリックしてドロワーを開く
どのタブでも、アプリをクリックしてからそのプロセスの1つをクリックするか、アプリのドロワーでプロセスにポインタを合わせてⓘをクリックします。そのプロセスのドロワーが開きます。⌘Fで名前からプロセスを探せ、
/a pattern/で正規表現検索ができます。 - 02
ドロワーをセクションごとに読む
識別情報、次にアプリまたは実行ファイル、セキュリティ、リソース使用状況、ディスク、ネットワーク、下位プロセス。Info.plist、エンタイトルメント、環境は開くまで折りたたまれています。上位プロセス、起動元、各下位プロセスはリンクなので、クリックするとそこへ移動します。
- 03
プロセスの表の列を選ぶ
ツールバーの“列”ボタンで、タブの列を追加したり外したりできます。PID、ユーザ、パス、バージョン、開始時刻、アイドル状態解除、各種の値。タブごとに設定が保持されます。
- 04
コピー、CSVとして保存、またはターミナルで聞く
ドロワーのヘッダにある共有ボタンから、“テキストとしてコピー”と“CSVとして保存”が選べます。ターミナルでは
vitals process <name>またはvitals process <pid>に、--json、--env、--plistを付けて。MCPではprocess_detailsツールです。
codesignvitals process --json関連する用語
数値の意味を、アクティビティモニタ用語集から紹介します。
- PID
PID(プロセスID)は、実行中の各プロセスを識別するためにmacOSが割り当てる番号です。
- launchd
launchdは、macOSが起動時に最初に開始するプロセスで、プロセスIDは1です。
- ヘルパープロセス
ヘルパープロセスは、Webページの描画、機能拡張の実行、グラフィックスの処理など、仕事の一部を担当させるためにアプリが起動する別のプロセスです。
- スレッド
スレッドは、プロセスの中で個別に進む実行の流れです。
- リッスン中のポート
リッスン中のポートとは、ポート3000のWebサーバのように、プロセスが外からの接続を待っているネットワークポートです。
- WindowServer
WindowServerは、ウインドウを管理するmacOSのシステムプロセスです。
- プロセスのサンプルを収集
“プロセスのサンプルを収集”は、選択したプロセスが数秒間に何をしているかを記録し、スレッドがどこで時間を使っているかをテキストのレポートにするアクティビティモニタのツールです。
- 強制終了
“強制終了”は、アプリやプロセスに保存や後片付けをさせずに、ただちに終わらせます。
お問い合わせ
プロセスインスペクタについて、購入前によく聞かれる質問。
プロセスインスペクタはどうやって開きますか?
どのリストでも、プロセスをクリックするとそのドロワーが開きます。アプリのドロワーでは、プロセスがそれぞれ1行になっています。行をクリックするか、ポインタを合わせると横に現れるⓘをクリックします。⌘Fを押すと名前でプロセスを探せ、/a pattern/と入力すると正規表現で検索できます。
プロセスのコード署名から何がわかりますか?
そのコードを作ったのが誰かです。チームID付きの名前は、Google LLCやDocker Incのように、Appleが身元を確認した開発者です。Apple自身のプロセスにはAppleと表示されます。“署名済み、証明書なし”は、Macでビルドされ、特定の誰かの署名はないツールで、Homebrewや自分でコンパイルしたものでは普通のことです。“署名なし”は、署名がまったくないという意味です。その下には、強化されたランタイムを使っているか、サンドボックスで実行されているか、そして付与されたすべてのエンタイトルメントが表示されます。
プロセスが安全か、マルウェアかをVitalsで見分けられますか?
判断するための事実を示します。コード署名、上位プロセス、置かれている場所、そして何をしているか。チームID付きの既知のメーカー、サンドボックス、見覚えのある上位プロセスがそろっていれば安心です。署名なし、隠しフォルダ内のパス、インストールした覚えのないlaunchdエージェントは、よく見てみる価値があります。Vitalsはマルウェアをスキャンしません。そこに何があるかを伝えます。
CPU時間とは何ですか? なぜユーザとシステムに分かれているのですか?
CPU時間は、プロセスが起動してからコアを使い続けた時間の合計です。1コアの50%を2時間使ったプロセスなら、1時間使ったことになります。ユーザ時間はプロセス自身の処理、システム時間はファイルの読み込みやネットワークとの通信など、カーネルがそのプロセスのために行った処理です。大したことをしていないプロセスでシステムの割合が高いときは、たいていmacOSに何かを頼んでばかりいるということです。
プロセスによって表示される詳細が少ないのはなぜですか?
macOSは、プロセスのコマンドライン、環境、起動してからの合計を、そのプロセスを実行しているユーザにしか見せません。macOSやほかのアカウントに属するプロセスは、それらを公開しません。識別情報と署名はそれでも表示され、数値はVitalsのオプションのヘルパーを通して表示されます。“設定”→“一般”で“システム全体の計測”をオンにすると取得できます。
WindowServerやkernel_taskのようなmacOSのプロセスも表示されますか?
はい。アプリはmacOS、署名はApple、上位プロセスはlaunchdです。ヘルパーをオンにすればCPUとメモリも表示され、ドロワーを開いている間はそのグラフも動きます。
プロセスの環境変数を見られますか?
はい。ドロワーの最後にある“環境”セクション(開くまで折りたたまれています)と、ターミナルのvitals process --envで見られます。環境にはキーが含まれていることが多いので、AIアシスタントには決して渡されません。
終了したプロセスを、Vitalsはどのくらい残しておきますか?
10分間、アプリのドロワーに、名前、開始と終了の時刻、保持していたメモリとともに残ります。クラッシュしたヘルパーや、席を外している間に終わったビルドも、まだそこで確認できます。
プロセスの詳細は、ターミナルやAIアシスタントからも取得できますか?
はい。vitals process nodeやvitals process 60412で同じ詳細が、テキストで、またはスクリプト向けに--jsonで得られます。--envで環境が、--plistでアプリのInfo.plistが加わります。Claude、Codex、CursorのようなアシスタントはVitalsのMCPサーバのprocess_detailsツールから取得でき、求めればInfo.plistも含まれます。
プロセスのサンプルやspindumpは取れますか?
いいえ。それらはアクティビティモニタのもので、Vitalsは真似しません。Vitalsが答えるのは、プロセスが何かです。コード署名、上位プロセス、リソースの使用状況とともに示します。固まったアプリのスタックトレースが必要なら、アクティビティモニタを開いて“サンプル”を押してください。
関連情報
これを使うガイドと、同じ目的で買われるアプリとVitalsの比較。