Next: , Previous: , Up: プロセス   [Contents][Index]


39.12 別のプロセスへのアクセス

カレントEmacsセッションのサブプロセスにたいするアクセスと操作に加えて、同一マシンで実行中の他のプロセスにたいしてEmacs Lispプログラムがアクセスすることもできます。Emacsのサブプロセスと区別するために、わたしたちはこれらをシステムプロセス(system processes)と呼んでいます。

Emacsはシステムプロセスへのアクセス用のプリミティブをいくつか提供します。これらのプリミティブはすべてのプラットフォームではサポートされません。これらのプリミティブはサポートされないシステムではnilをリターンします。

Function: list-system-processes

この関数はそのシステム上で実行中のすべてのプロセスのリストをリターンする。各プロセスはPIDというOSから割り当てられた数値によるプロセスIDにより識別され、同一時に同一マシン上で実行中の他のプロセスと区別される。

Function: process-attributes pid

この関数はプロセスID pidで指定されるプロセスにたいする属性のalistをリターンする。このalist内の各属性は(key . value)という形式でありkeyは属性、valueはその属性の値である。この関数がリターン可能なさまざまな属性にたいするkeyを以下にリストした。これらすべての属性をすべてのプラットフォームがサポートする訳ではない。ある属性がサポートされていなければ、その連想値はリターンされるalist内に出現しない。

euid

そのプロセスを呼び出したユーザーの実効ユーザーID(effective user ID)。対応するvalueは数値。プロセスがカレントEmacsセッションを実行したユーザーと同じなら値はuser-uidがリターンする値と等しくなる(ユーザーの識別を参照)。

user

そのプロセスの実効ユーザーIDに対応するユーザー名であるような文字列。

egid

実行ユーザーIDのグループIDであるような数値。

group

実効ユーザーのグループIDに対応するグループ名であるような文字列。

comm

そのプロセス内で実効したコマンドの名前。これは通常は先行するディレクトリーを除いた実行可能ファイル名を指定する文字列。しかしいくつかの特別なシステムプロセスは、実行可能ファイルやプログラムに対応しない文字列を報告する可能性がある。

state

そのプロセスの状態コード。これはそのプロセスのスケジューリング状態をエンコードする短い文字列。以下は頻繁に目にするコードのリスト:

"D"

割り込み不可のsleep(通常はI/Oによる)

"R"

実行中

"S"

割り込み可能なsleep(何らかのイベント待ち)

"T"

ジョブ制御シグナルにより停止された

"Z"

zombie: 終了したが親プロセスに回収されていないプロセス

可能な状態の完全なリストはpsコマンドのman pageを参照のこと。

ppid

親プロセスのプロセスIDであるような数値。

pgrp

そのプロセスのプロセスグループIDであるような数値。

sess

そのプロセスのセッションID。これはそのプロセスのセッションリーダー(session leader)のプロセスIDであるような数値。

ttname

そのプロセスの制御端末の名前であるような文字列。これはUnixやGNUシステムでは通常は/dev/pts65のような対応する端末デバイスのファイル名。

tpgid

そのプロセスの端末を使用するフォアグラウンドプロセスグループのプロセスグループIDであるような数値。

minflt

そのプロセス開始以降に発生したマイナーなページフォルト数(マイナーなページフォルトとはディスクからの読み込みを発生させないページフォルト)。

majflt

そのプロセス開始以降に発生したメジャーなページフォルト数(メジャーなページフォルトとはディスクからの読み込みを要し、それ故にマイナーページフォルトより高価なページフォルト)。

cminflt
cmajflt

minfltmajfltと似ているが与えられたプロセスのすべての子プロセスのページフォルト数を含む。

utime

実行中のアプリケーションのコードにたいして、ユーザーコンテキスト内でプロセスに消費された時間。対応するvalueはLispのタイムスタンプ(時刻を参照)。

stime

システムコールの処理にたいしてシステム(kernel)コンテキスト内でプロセスに消費された時間。対応するvalueはLispのタイムスタンプ。

time

utimestimeの和。対応するvalueはLispのタイムスタンプ。

cutime
cstime
ctime

utimestimeと同様だが与えられたプロセスのすべての子プロセスの時間が含まれる点が異なる。

pri

そのプロセスの数値的な優先度。

nice

そのプロセスのnice値(nice value)であるような数値(小さいnice値のプロセスがより優先的にスケジュールされる)。

thcount

そのプロセス内のスレッド数。

start

プロセスの開始時刻(Lispのタイムスタンプ)。

etime

プロセスの開始からの経過時間(Lispのタイムスタンプ)。

vsize

そのプロセスの仮想メモリーのKB単位でのサイズ。

rss

そのプロセスがマシンの物理メモリー内で占める常駐セット(resident set)のKB単位でのサイズ。

pcpu

そのプロセス開始以降に使用されたCPU時間のパーセンテージ。valueは0から100の間の浮動小数点数。

pmem

マシンにインストールされた物理メモリー合計のうち、そのプロセスの常駐セットのパーセンテージ。値は0から100の間の浮動小数点数。

args

そのプロセスが呼び出されたときのコマンドライン。これは個々のコマンドライン引数がブランクで区切られた文字列。引数に埋め込まれた空白文字はシステムに応じて適切にクォートされる。GNUやUnixではバックスラッシュ文字によるエスケープ、Windowsではダブルクォート文字で囲まれる。つまりこのコマンドライン文字列はshell-commandのようなプリミティブにより直接使用できる。