/usr/proc/bin に入っているプロセスツールを使用すると、プロセスの一部を制御できます。表 35-3 に、これらのプロセスツールを示します。詳細は、proc(1) のマニュアルページを参照してください。
表 35-3 プロセスツール
ツールの種類 |
ツールの機能または表示内容 |
---|---|
/usr/proc/bin/pstop pid |
プロセスを停止する |
/usr/proc/bin/prun pid |
プロセスを再開する |
/usr/proc/bin/ptime pid |
microstate アカウントを使用してプロセスの時間を測定する |
/usr/proc/bin/pwait [-v] pid |
指定されたプロセスが終了するのを待つ |
プロセスの詳細を表示するツール |
|
/usr/proc/bin/pcred pid |
資格 |
/usr/proc/bin/pfiles pid |
開いたファイルの fstat 情報と fcntl 情報 |
/usr/proc/bin/pflags pid |
/proc の追跡フラグ、保留シグナルと保持シグナル、lwp ごとの他の状態情報 |
/usr/proc/bin/pldd pid |
各プロセスにリンクされた動的ライブラリ |
/usr/proc/bin/pmap pid |
アドレス空間マップ |
/usr/proc/bin/psig pid |
シグナルの動作 |
/usr/proc/bin/pstack pid |
lwp ごとの 16 進数 + 記号スタックトレース |
/usr/proc/bin/ptree pid |
指定した pid が入ったプロセスツリー |
/usr/proc/bin/pwdx pid |
現在の作業ディレクトリ |
上記の表 35-3 で、pid はプロセス識別番号です。この番号は ps -ef コマンドを使用して表示できます。
第 35 章「プロセスの管理手順」では、プロセスツールコマンドを使用して、プロセスの詳細表示や、プロセスの起動および終了などのシステム管理作業を実行する方法を説明します。プロセスツールのさらに詳細な説明は、proc(1) のマニュアルページを参照してください。
プロセスが無限ループ内でトラップされた場合や、実行時間が長すぎる場合は、プロセスを終了 (kill) できます。pkill コマンドを使用してプロセスを終了する方法については、第 35 章「プロセスの管理手順」を参照してください。
以前のフラットな /proc ファイルシステムは、状態情報と制御機能のためのサブディレクトリが追加されたディレクトリ階層に再構築されました。
/proc ファイルシステムは、ウォッチポイント機能も提供します。この機能は、プロセスのアドレス領域の個々のページの読み取り権または書き込み権を再マップするために使用されます。この機能は制限がなく、MT-safe です。
新しい /proc ファイル構造は、古い /proc インタフェースと完全なバイナリ互換を提供します。ただし、新しいウォッチポイント機能は、古いインタフェースでは使用できません。
デバッグ用ツールは、/proc の新しいウォッチポイント機能を使用するように変更されています。つまり、ウォッチポイントプロセス全体がより高速になったためです。
dbx デバッグ用ツールを使用してウォッチポイントを設定するときの次の制限は取り除かれました。
SPARC レジスタウィンドウのため、スタック上のローカル変数にウォッチポイントを設定する。
マルチスレッド化されたプロセスにウォッチポイントを設定する。
詳細は、proc(4)、core(4)、および adb(1) のマニュアルページを参照してください。
長いコマンド名を入力しなくてもすむように、プロセスツールディレクトリを PATH 変数に追加してください。これにより、各ファイル名の最後の部分 (たとえば、/usr/proc/bin/prun ではなく prun) を入力するだけで、プロセスツールを実行できます。
(省略可能) ps コマンドからの出力を使用して、詳細情報を表示したいプロセスの識別番号を調べます。
# pgrep process |
process |
詳細情報を表示したいプロセス名 |
プロセス識別番号は、出力の第 1 列目に表示されます。
適切な /usr/proc/bin コマンドを使用してプロセスを制御します。
# /usr/proc/bin/pcommand PID |
pcommand |
実行したいプロセスツールコマンド。これらのコマンドについては、表 35-3 を参照 |
PID |
プロセスの識別番号 |
ps コマンドで、プロセスの状態を確認します。
# ps | grep PID |
次の例は、プロセスツールを使用して印刷ツールを停止したり、再起動したりする方法を示しています。
# PATH=$PATH:/usr/proc/bin # export PATH # ps -e | grep 'print*' 264 console 0:03 printtool # pstop 264 # prun 264 # ps | grep 264 264 console 0:03 printtool # |
/usr/proc/bin ディレクトリを PATH 変数に追加します。
印刷ツールのプロセス識別番号を表示します。
印刷ツールプロセスを停止します。
印刷ツールプロセスを再開します。