ブログに戻る

ProcXray入門:ステップバイステップチュートリアル

macOSでのProcXrayのインストールと使い方を解説。プロセスツリー、正規表現検索、環境変数、コード署名、ネットワーク検査までを1つのチュートリアルで学べます。

ProcXrayをダウンロードしたばかりですか?このチュートリアルでは、インストールから初回起動、そして主要な機能すべてを順を追って説明します。約10分で、インターフェースの操作方法、正規表現によるプロセス検索、環境変数の確認、コード署名の検証などを一通り把握できるようになります。

結論から言うと

ProcXrayは、開発者向けのネイティブmacOSプロセスモニターです。アプリをApplicationsフォルダにドラッグするだけでインストール完了。起動すると、ツリー表示、正規表現検索、環境変数の確認、コード署名の検証、ネットワーク/dylib分析まで、すべてを1つのウィンドウで利用できるライブプロセスリストが表示されます。

システム要件

インストール

ステップ1:ダウンロード。 procxray.comから最新の.dmgファイルを入手します。

ステップ2:DMGを開く。 ダウンロードしたファイルをダブルクリックします。ProcXrayのアイコンとApplicationsフォルダへのショートカットを含むFinderウィンドウが表示されます。

ステップ3:Applicationsにドラッグ。 ProcXrayのアイコンをApplicationsフォルダにドラッグします。インストールはこれだけです。

ステップ4:初回起動。 ApplicationsからProcXrayを開きます。初回起動時、macOSのGatekeeperが「このアプリはインターネットからダウンロードされました」というダイアログを表示する場合があります。開くをクリックして続行してください。ProcXrayはコード署名済みで、Appleの公証も取得しています。

macOSのバージョンに応じて、アクセシビリティまたはフルディスクアクセスの権限を付与するよう求められます。これらは、ProcXrayが環境変数やオープンファイルディスクリプタなどのプロセス詳細を読み取るために必要です。

初めて見る画面:メインインターフェース

ProcXrayを起動すると、ウィンドウのメイン領域にプロセスリストが表示されます。各行には、プロセス名、PID、CPU使用率、メモリ使用量が表示されます。

左側のサイドバーで、さまざまなビューやフィルターを切り替えられます。リスト内のプロセスを選択すると、右側の詳細パネルGeneralEnvironmentConnectionsModulesSecurityというタブが表示されます。ここがProcXrayの真価を発揮する場所です。

上部のツールバーには、検索バー、表示切替(ツリー vs フラット)、更新コントロールがあります。

主要機能ツアー

プロセスツリー vs フラットリスト

デフォルトでは、ProcXrayはプロセスをツリー表示で表示します。各親プロセスの下に子プロセスがネストされて表示されるため、何がどのプロセスを起動したかを把握するのに非常に役立ちます。例えば、Node.jsの開発サーバーをデバッグしている場合、nodeを起動したシェル、そのNodeがスポーンしたワーカースレッドまで、すべてが明確な階層構造で表示されます。

ツールバーの表示切替でフラットリストモードに切り替えると、アルファベット順やリソース順の単純なリストが表示されます。プロセスの親子関係を調べるときはツリー表示、リソース使用量を素早くスキャンするときはフラットリストが便利です。

正規表現検索

ウィンドウ上部の検索バーは、完全な正規表現を受け付けます。入力に応じて、プロセスリストがリアルタイムでフィルタリングされ、ほとんどのマシンでミリ秒未満の応答速度です。

試してみると便利なパターン:

正規表現は、プロセス名、コマンドライン引数、PID、実行ファイルパスに対して同時にマッチします。

環境変数

プロセスを選択し、詳細パネルのEnvironmentタブをクリックします。そのプロセスが起動時に持っていたすべての環境変数が、検索可能なスクロール可能なテーブルに一覧表示されます。

デバッグにおいてこれは極めて重要です。CIとローカルでアプリの挙動が異なる場合、原因はほぼ常に環境変数にあります。PATHNODE_ENVDYLD_LIBRARY_PATHHOME、またはツールチェインが設定するカスタム変数を確認してみてください。

Copy Allをクリックすると、すべての環境変数をJSONとしてエクスポートできます。.envファイルやバグレポートに貼り付けるのに便利です。

コード署名の検証

Securityタブをクリックすると、プロセスのバイナリが署名されているか、誰が署名したか、どのentitlementsを保持しているかを確認できます。表示される内容:

セキュリティ監査、サードパーティツールが改ざんされていないことの確認、プロセスが特定の権限を必要とする理由の理解に役立ちます。

ネットワークとモジュールの検査

Connectionsタブには、選択したプロセスのすべてのネットワーク接続とリスニングポートが表示されます。ローカルおよびリモートアドレス、ポート番号、接続状態を確認できます。「このプロセスはどこに接続しているのか?」「ポート3000を使っているのはどのプロセスか?」といった疑問の解決に役立ちます。

Modulesタブには、プロセスがロードしているすべてのダイナミックライブラリが一覧表示されます。ライブラリのバージョン競合や想定外のdylibインジェクションに関わるクラッシュをデバッグする際、ターミナルでvmmapotoolを実行せずとも、このタブで全体像を把握できます。

右クリックコンテキストメニュー

プロセスリスト内の任意のプロセスを右クリックすると、クイックアクションにアクセスできます:

これらにより、一般的な操作のためにターミナルに切り替える必要がなくなります。

日常的な使い方のヒント

ProcXrayをDockにピン留めする。 開発者であれば、ターミナルと同じくらい頻繁に使うことになるでしょう。ワンクリックでアクセスできるようにしておくと、日々の作業効率が大きく変わります。

まず正規表現検索を使う。 何百ものプロセスをスクロールする前に、パターンを入力しましょう。dockerjavaのような単純な部分文字列でも、リストを瞬時に絞り込めます。

コードを確認する前に環境変数を確認する。 予期しない挙動がある場合、Environmentタブを見ればソースコードを読むよりも速く原因が分かることが多いです。PATHのエントリ不足、誤ったHOMEディレクトリ、期限切れのトークンなどがよくある原因です。

ビルドのデバッグにはツリー表示を使う。 ビルドが遅い、または失敗する場合は、ツリー表示に切り替えて、ビルドツールのプロセスサブツリーをリアルタイムで観察しましょう。どのコンパイルステップが実行中で、どれが停滞していて、どれがエラーで終了したかを正確に把握できます。

FAQ

ProcXrayにroot権限やsudoは必要ですか?

いいえ。ProcXrayは通常のユーザーアプリケーションとして動作します。プロセス情報の読み取りには標準的なmacOS APIを使用しています。環境変数の確認など一部の機能については、初回起動時に付与するアクセシビリティまたはフルディスクアクセスの権限が必要になる場合がありますが、root権限は不要です。

一瞬で出現して消えるような短命プロセスはどう処理されますか?

ProcXrayはプロセスがスポーンした瞬間にキャプチャし、緑色でハイライト表示します。プロセスが終了すると、赤色でハイライトされ、リストに残るため、詳細を確認することができます。これは特にビルド中に有用で、コンパイラやリンカーのサブプロセスは1秒未満しか存在しないことが多いためです。

Activity MonitorとProcXrayを併用できますか?

もちろんです。両者は補完的な目的で使えます。Activity Monitorは、システム全体のリソース使用状況をざっと確認するには十分です。ProcXrayは、Activity Monitorにはない開発者向けの深い情報、つまりプロセスの親子関係、環境変数データ、署名情報、ネットワーク接続情報を提供します。

ProcXrayをダウンロード → — 全プレミアム機能が使える14日間の無料トライアル。