Menu Close

3.3.4. SystemTap を使用したアプリケーションのシステムコールの監視

SystemTap ツールでは、カーネルイベントにカスタムイベントハンドラーを登録できます。strace ツールと比較すると、使用は難しくなりますが、より効率的でより複雑な処理ロジックを使用できます。strace.stp と呼ばれる SystemTap スクリプトは SystemTap と共にインストールされ、SystemTap を使用して strace に類似の機能を提供します。

前提条件

  • SystemTap と対応するカーネルパッケージがシステムにインストールされている必要がある。

手順

  1. 監視するプロセスのプロセス ID (pid) を検索します。

    $ ps -aux
  2. strace.stp スクリプトで SystemTap を実行します。

    # stap /usr/share/systemtap/examples/process/strace.stp -x pid

    pid の値は、プロセス ID です。

    スクリプトはカーネルモジュールにコンパイルされ、それが読み込まれます。これにより、コマンドの入力から出力の取得までにわずかな遅延が生じます。

  3. プロセスでシステム呼び出しが実行されると、呼び出し名とパラメーターがターミナルに出力されます。
  4. プロセスが終了した場合、または Ctrl+C を押すと、スクリプトは終了します。