Go to main content
マニュアルページ セク ション 1: ユー ザーコマンド

印刷ビューの終了

更新: 2016年12月6日
 
 

pfiles(1)

名前

proc, pflags, pcred, pldd, psig, pstack, pfiles, pwdx, pstop, prun, pwait, ptime - proc ツール

形式

/usr/bin/pflags [-r] pid | core [/lwp] ...
/usr/bin/pcred [pid | core]...
/usr/bin/pcred [-u user/uid] [-g group/gid] [-G grouplist] pid...
/usr/bin/pcred -l login pid...
/usr/bin/pldd [-Fl] [pid | core]...
/usr/bin/psig [-n] pid...
/usr/bin/pstack [-F] pid | core [/lwp] ...
/usr/bin/pfiles [-Fn] pid...
/usr/bin/pwdx pid...
/usr/bin/pstop pid[/lwp] ...
/usr/bin/prun pid[/lwp] ...
/usr/bin/pwait [-v] pid...
/usr/bin/ptime [-Fm] [-p] pid...
/usr/bin/ptime [-m]command [arg]...

説明

proc ツールは、/proc (proc(4) を参照) の機能を使用するユーティリティーです。これらのツールのほとんどには、プロセス ID (pid) のリストを指定できます。プロセス ID を指定できるツールでは、/proc/nnn もプロセス ID として認識されるため、シェル展開 /proc/* を使用するとシステム内のすべてのプロセスを指定できます。

一部の proc ツールは、コアファイルに適用することもできます (core(4) を参照)。コアファイルに適用されるツールは、プロセス ID またはコアファイルの名前あるいはその両方のリストを認識します。

一部の proc ツールは、個別のスレッドに対して動作できます。ユーザーは、選択した (つまり、/thread-id をプロセス ID またはコアに追加した) スレッドだけを検査できます。複数のスレッドを選択するには、区切り文字「-」と「,」を使用します。たとえば、「/1,2,7-9」は、スレッド 1278、および 9 を検査します。

「警告」を参照してください。

pflags

/proc 追跡フラグ (保留および維持シグナル)、およびその他の /proc ステータス情報をプロセスごとまたは各プロセスの指定された lwp ごとに表示します。

pcred

各プロセスの資格情報 (実効 UID、実 UID、保存された UID、実効 GID、実 GID、保存された GID) を表示または設定します。

pldd

各プロセスにリンクされている (dlopen(3C) を使用して明示的に接続されている共有オブジェクトを含む) 動的ライブラリを表示します。ldd(1) も参照してください。

psig

各プロセスのシグナルの動作とハンドラを表示します。signal.h(3HEAD) を参照してください。

pstack

16 進数とシンボリックのスタックトレースをプロセスごとまたは各プロセスの指定された lwp ごとに出力します。

pfiles

各プロセスで開かれているすべてのファイルに関する fstat(2) および fcntl(2) 情報を報告します。ネットワークエンドポイントの場合は、ローカル (および接続されている場合はピア) のアドレス情報も提供されます。ソケットの場合は、ソケットタイプ、ソケットオプション、および送信と受信のバッファーサイズも提供されます。また、/proc/pid/path から情報を使用できる場合は、ファイルへのパスが報告されます。これは、ファイルを開くときに使用された名前と必ずしも同じではありません。詳細については、proc(4) を参照してください。

pwdx

各プロセスの現在の作業用ディレクトリを表示します。

pstop

各プロセスまたは指定された lwp を停止します (PR_REQUESTED 停止)。

prun

各プロセスまたは指定された lwp を実行するように設定します (pstop の逆)。

pwait

指定したすべてのプロセスの終了を待機します。

ptime

time(1) と同様に、コマンドの時間を計測しますが、再現性のある精度を得るためにマイクロステートアカウンティングを使用します。time(1) とは異なり、コマンドの子の時間は計測されません。

–p pid バージョンが使用された場合、指定された pid の時間統計のスナップショットを表示します。

オプション

次の一般的なオプションがサポートされています。

–F

強制。別のプロセスが制御していても、ターゲットプロセスを捕捉します。

–n

(psig および pfiles のみ) 非冗長モードを設定します。psig は、名前ではなく、シグナルハンドラアドレスを表示します。pfiles は、各ファイル記述子の冗長情報を表示しません。代わりに、pfiles は、プロセスが fstat(2) を各ファイル記述子に適用した場合に取得される情報に出力を制限します。

–r

(pflags のみ) プロセスが停止された場合、プロセスのマシンレジスタを表示します。

–v

(pwait のみ) 冗長。終了を標準出力に報告します。

一般的なオプションのほかに、pcred は次のオプションをサポートします。

–g group/gid

ターゲットプロセスの実グループ ID (GID)、実効グループ ID、保存されたグループ ID を、指定した値に設定します。

–G grouplist

ターゲットプロセスの補助 GID を、指定したグループリストに設定します。補助グループは、グループ名 ID のコンマ区切りリストで指定します。空のリストは、ターゲットプロセスの補助グループリストを消去します。

–l login

ターゲットプロセスの実 UID、実効 UID、保存された UID を、指定したログインの UID に設定します。ターゲットプロセスの実 GID、実効 GID、保存された GID を、指定したログインの GID に設定します。補助グループリストを、指定したログインの補助グループリストに設定します。

–u user/uid

ターゲットプロセスの実ユーザー ID (UID)、実効ユーザー ID、保存されたユーザー ID を、指定した値に設定します。

一般的なオプションのほかに、pldd は次のオプションをサポートします。

–l

未解決の動的リンカーマップ名を表示します。

一般的なオプションのほかに、ptime は次のオプションをサポートします。

–m

マイクロステートアカウンティング統計をすべて表示します。

表示されるフィールドは次のとおりです。

real

時計時間。

user

ユーザーレベルの CPU 時間。

sys

システムコールの CPU 時間。

trap

その他のシステムトラップの CPU 時間。

tflt

テキストページフォルトのスリープ時間。

dflt

データページフォルトのスリープ時間。

kflt

カーネルページフォルトのスリープ時間。

lock

ユーザーロック待機のスリープ時間。

slp

その他すべてのスリープ時間。

lat

CPU 遅延 (待機) 時間。

stop

停止時間。

–p pid

指定された pid の時間統計情報のスナップショットを表示します。

別のプロセスの資格情報を設定するには、setuid(2) で説明されている規則に従って、ユーザー ID およびグループ ID を指定した値に変更するための十分な特権がプロセスに必要です。また、ターゲットプロセスを制御するための十分な特権がプロセスに必要です。

使用法

次の proc ツールは、ターゲットプロセスの検査時および結果の報告時にターゲットプロセスを停止します。pfilespldd、および pstack。停止中のプロセスは何も実行できません。したがって、たとえば、X サーバーが、X サーバーの制御下のウィンドウで実行されているこれらのいずれかの proc ツールによって検査される場合、proc ツールはリフレッシュできないウィンドウに結果を表示しようとするため、ウィンドウシステム全体がデッドロックになる可能性があります。この場合、ssh(1) を使用して別のシステムからログインし、問題のある proc ツールを終了すると、デッドロックが解決されます。

「警告」を参照してください。

–F フラグを使用するときは注意してください。2 つの制御プロセスを 1 つの犠牲プロセスに課すと混乱することがあります。プライマリ制御プロセス (通常はデバッガ) が犠牲プロセスを停止しており、プライマリ制御プロセスが当該の proc ツールの適用時に何も実行していない場合のみ、安全性が確保されます。

一部の proc ツールは、前述の形式で示されているように、コアファイルにも適用できます。コアファイルは、プロセスの状態のスナップショットで、シグナルでプロセスを終了する前にカーネルによって、または gcore(1) ユーティリティーによって生成されます。一部の proc ツールでは、コアをダンプしたプロセスに対応する実行可能ファイルの名前またはプロセスに関連付けられている共有ライブラリの名前を得ることが必要になる場合があります。これらのファイルは、たとえば、pstack(1) のシンボルテーブル情報を提供するために必要です。その proc ツールで必要な実行可能ファイルまたは共有ライブラリを検出できない場合、一部のシンボル情報を表示できないことがあります。同様に、あるオペレーティングシステムリリースのコアファイルが別のオペレーティングシステムリリース上で検査される場合は、ランタイムリンクエディタデバッギングインタフェース (librtld_db) を初期化できません。この場合、共有ライブラリのシンボル情報は使用できません。

終了ステータス

次の終了ステータスが返されます。

0

正常終了。

0 以外

エラーが発生しました。

ファイル

/proc/*

プロセスファイル

属性

属性についての詳細は、マニュアルページの attributes(5) を参照してください。

属性タイプ
属性値
使用条件
system/core-os
インタフェースの安定性
下記を参照。

人間が読める形式の出力は「不確実」です。オプションは「確実」です。

関連項目

gcore(1), ldd(1), pargs(1), pgrep(1), pkill(1), plimit(1), pmap(1), preap(1), ps(1), ptree(1), ppgsz(1), pwd(1), rlogin(1), ssh(1), time(1), truss(1), wait(1), fcntl(2), fstat(2), setuid(2), dlopen(3C), signal.h(3HEAD), core(4), proc(4), process(4), attributes(5), zones(5)

警告

次の proc ツールは、ターゲットプロセスの検査中および結果の報告中にターゲットプロセスを停止します。pfilespldd、および pstack。ただし、pstack は、個々のスレッドに対して実行されていても、プロセス全体が停止します。

停止中のプロセスまたはスレッドは何も実行できません。本稼働環境で頻繁に使用されるプロセスまたはスレッドを短時間でも停止すると、これらのプロセスまたはスレッドが深刻なボトルネックになったりハングアップしたりする可能性があり、ユーザーがプロセスまたはスレッドを使用できなくなることがあります。一部のデータベースも異常終了する可能性があります。したがって、たとえば、前述の proc ツールを使用していずれかのデータベースプロセスまたはスレッドが追跡されるときに、大きな負荷のかかるデータベースサーバーはハングアップする可能性があります。このため、本稼働環境で UNIX プロセスまたはスレッドを停止することは避けてください。

これらのツールによって停止されているプロセスまたはスレッドは、/usr/bin/ps –eflL を実行し、最初の列で「T」を検索すると、識別できます。ただし、「sched」などの特定のプロセスは、ほとんどの場合デフォルトで「T」ステータスを表示する可能性があります。

ネットワークファイルシステムでロックされたファイルに返されたプロセス ID には意味がない場合があります。