Macでどのプロセスが動いているかを把握することは、パフォーマンスの問題を解決したり、不審なアプリを追跡したり、システムが裏側で何をしているかを理解するために不可欠です。GUIツールでもコマンドラインでも、macOSには全体像を把握するための手段が複数用意されています。
結論から言うと
/Applications/Utilities/にあるActivity Monitorを開けば、実行中の全プロセスを視覚的にすぐ確認できます。ターミナルのps、top、lsofコマンドを使えば、スクリプト化可能な詳細出力が得られます。プロセスツリー、環境変数、短命プロセスのキャプチャなどの高度な検査には、**ProcXray**が便利です。
方法1:Activity Monitor
Activity MonitorはApple標準搭載のプロセスビューアです。すべての実行中プロセスについて、CPU、メモリ、エネルギー、ディスク、ネットワークの使用状況を表示します。
Activity Monitorの開き方
- Finderを開きます。
- アプリケーション > ユーティリティに移動します。
- Activity Monitorをダブルクリックします。
または、Cmd + SpaceでSpotlightを開き、「Activity Monitor」と入力してEnterを押します。
すべてのプロセスを表示する
自分のプロセスだけが表示されている場合は、表示を切り替えます。
- メニューバーの表示メニューをクリックします。
- すべてのプロセスを選択します。
これで、システムデーモンやバックグラウンドサービスを含む、Mac上で実行中のすべてのプロセスが表示されます。
ソートとフィルタリング
- 任意のカラムヘッダ(CPU、メモリ、PID)をクリックすると、その指標でソートできます。
- 右上の検索フィールドでプロセス名をフィルタリングできます。
- CPU、メモリ、エネルギー、ディスク、ネットワークのタブを切り替えることで、異なるリソースビューを確認できます。
アクティビティモニタでも親子関係を表示できます。表示 → すべてのプロセス(階層表示)(英語表示:View → All Processes, Hierarchically)を選ぶと、ヘルパーを起動した親プロセスを確認できます。Appleの説明も参照してください。
制限事項
Activity Monitorは簡単な確認には適していますが、見えない部分があります:
- 環境変数が見えない。 プロセスが起動された際の環境変数を確認できません。
- 短命プロセスが見逃される。 更新間隔の間に起動して終了するプロセスは表示されません。
- 正規表現検索がない。 検索フィールドは単純なテキストマッチのみです。
方法2:ターミナルコマンド
ターミナルを使えば、より強力で柔軟な操作が可能です。実行中のプロセスを確認するのに最も役立つコマンドを紹介します。
ps — プロセスの一覧表示
psコマンドは、現在のプロセスのスナップショットを出力します。
# すべての実行中プロセスを詳細情報付きで一覧表示
ps aux
各行には、ユーザー、PID、CPU使用率、メモリ使用率、開始時刻、完全なコマンドが表示されます。
特定のプロセスを名前で検索するには:
# "Safari"に一致するすべてのプロセスを検索
ps aux | grep Safari
完全なコマンドライン引数を表示するには(スクリプト作成時に便利):
# 特定のPIDの完全なコマンドを表示
ps -ww -p 1234 -o pid,command
top — リアルタイムプロセスモニター
topコマンドは、実行中のプロセスをリアルタイムで継続的に更新して表示します。
# CPU使用率順にソートしてtopを起動
top -o cpu
qを押すと終了します。topの実行中にoを押してカラム名を入力すると、ソート順を変更できます。
非対話でCPUを確認する場合は2回採取し、2回目を見ます。初回には比較する直前のサンプルがないため、プロセスのCPU値は有効な比較に使えません。
top -l 2 -s 1 -n 10 -o cpu
lsof — オープンファイルと接続の一覧
すべてのプロセスは、ファイル、ソケット、システムリソースをオープンしています。lsofコマンドはそれらを表示します。
# 特定のプロセスのすべてのオープンファイルを表示
lsof -p 1234
# 特定のポートを使用しているプロセスを検索
lsof -i :8080
# すべてのネットワーク接続を一覧表示
lsof -i
制限事項
ターミナルコマンドは強力ですが、トレードオフがあります:
- 出力が膨大になりがちです。
lsofは1プロセスあたり数千行を出力することもあります。 psは静的なスナップショットであり、読んでいる間に短命プロセスはすでに終了している可能性があります。ps、top、lsofのデータを横断的に照合するには手作業が必要です。- 追加のフォーマット処理なしでは、視覚的なプロセス階層を表示できません。
方法3:ProcXray
ProcXrayは、GUIの利便性と、Activity Monitorやターミナルコマンドを超える深い分析能力を兼ね備えたネイティブmacOSアプリです。
ProcXrayの強み
- プロセスツリー表示。 フラットリストと、親子関係を示すライブ階層ツリーを切り替え可能。どのアプリやスクリプトがプロセスを生成したかを即座に確認できます。
- 環境変数。 任意のプロセスをクリックするだけで、起動時のすべての環境変数を確認可能。検索もでき、JSONとしてコピーもできます。
- 短命プロセスのキャプチャ。 新規スポーンされたプロセスは緑色、最近終了したプロセスは赤色で保持されます。Activity Monitorや
psでは見逃される一時的なプロセスもキャプチャされます。 - リアルタイム正規表現検索。 プロセス名、PID、コマンドライン引数、パス全体を対象に、正規表現パターンでフィルタリングできます。
- コード署名の検証。 各プロセスが署名済みかどうか、誰が署名したか、どのentitlementsを保持しているかを一目で確認できます。
ProcXrayは、プロセスが実行中であることだけでなく、なぜ実行中なのかを調査する必要がある場合に特に有用です。

この既存のProcXrayスクリーンショットでは、選択したChromeプロセスのメモリが一時的に増加し、その後ほぼ元の水準に戻っています。一度のピークだけではメモリリークと判断できません。操作を繰り返し、より長い期間で観察してください。上のツリーにはChromeのヘルパーが個別に表示されています。
各方法の使い分け
| タスク | Activity Monitor | ターミナル | ProcXray |
|---|---|---|---|
| CPU/メモリの簡易チェック | 最適 | 良い | 良い |
| すべての実行中プロセスを表示 | 良い | 最適 | 最適 |
| 名前でプロセスを検索 | 良い | 良い | 最適 |
| プロセスツリー(親子関係)の表示 | 可能(表示メニュー) | 限定的 | 最適 |
| 環境変数の確認 | 不可 | 手間がかかる | 最適 |
| 短命プロセスの捕捉 | 不可 | 不可 | 最適 |
| スクリプト化・自動化 | 不可 | 最適 | 不可 |
| コード署名の確認 | 不可 | 手動 | 最適 |
FAQ
Macでは通常どのくらいのプロセスが動いていますか?
プロセス数はmacOS、アプリ、作業内容によって変わります。数だけでは正常か判断できません。固定の基準ではなく、継続的な負荷、メモリプレッシャー、実際の症状を確認してください。
何もインストールせずに実行中のプロセスを確認できますか?
はい。Activity Monitorはすべてのmacに標準搭載されており、psやtopなどのターミナルコマンドもすぐに使えます。基本的なニーズはこれらでカバーできます。ProcXrayのようなサードパーティツールは、より深い検査機能が必要な場合に価値を発揮します。
Macの動作を遅くしているプロセスを見つけて停止するには?
作業を保存し、まずアプリを通常の方法で終了します。応答しない場合はアクティビティモニタで選択し、停止 → 終了、必要な場合のみ 強制終了 を使います。未保存の内容が失われる可能性があります。不明なシステムプロセスは用途を調べてから判断してください。
ターミナルでは kill -TERM 1234 で終了を要求します。1234 は直前に確認したPIDに置き換えてください。kill -KILL 1234 は終了時の処理を実行できなくするため、最後の手段です。Appleの説明も参照してください。
関連ガイド
出典・参考文献
ProcXrayをダウンロード → — 無料、macOS Sonoma以降対応。