カレントEmacsセッションのサブプロセスにたいするアクセスと操作に加えて、他のプロセスにたいしてEmacs Lispプログラムがアクセスすることもできます。Emacsのサブプロセスと区別するために、わたしたちはこれらをシステムプロセス(system processes)と呼んでいます。
Emacsはシステムプロセスへのアクセス用のプリミティブをいくつか提供します。これらのプリミティブはすべてのプラットフォームではサポートされません。これらのプリミティブはサポートされないシステムではnil
をリターンします。
この関数はそのシステム上で実行中のすべてのプロセスのリストをリターンする。各プロセスはPIDというOSから割り当てられた数値によるプロセスIDにより識別され、同一時に同一マシン上で実行中の他のプロセスと区別される。
default-directory
がリモートホスト上を示す場合には、そのホスト上のプロセスがリターンされる。
この関数はプロセスID
pidで指定されるプロセスにたいする属性のalistをリターンする。このalist内の各属性は(key
.
value)
という形式でありkeyは属性、valueはその属性の値である。この関数がリターン可能なさまざまな属性にたいするkeyを以下にリストした。これらすべての属性をすべてのプラットフォームがサポートする訳ではない。ある属性がサポートされていなければ、その連想値はリターンされるalist内に出現しない。
default-directory
がリモートホスト上を示す場合には、そのホスト上のpidとみなされる。
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
minflt
やmajflt
と似ているが与えられたプロセスのすべての子プロセスのページフォルト数を含む。
utime
実行中のアプリケーションのコードにたいして、ユーザーコンテキスト内でプロセスに消費された時間。対応するvalueはLispのタイムスタンプ(時刻を参照)。
stime
システムコールの処理にたいしてシステム(kernel)コンテキスト内でプロセスに消費された時間。対応するvalueはLispのタイムスタンプ。
time
utime
とstime
の和。対応するvalueはLispのタイムスタンプ。
cutime
cstime
ctime
utime
やstime
と同様だが与えられたプロセスのすべての子プロセスの時間が含まれる点が異なる。
pri
そのプロセスの数値的な優先度。
nice
そのプロセスのnice値(nice value)であるような数値(小さいnice値のプロセスがより優先的にスケジュールされる)。
thcount
そのプロセス内のスレッド数。
start
プロセスの開始時刻(Lispのタイムスタンプ)。
etime
プロセスの開始からの経過時間(Lispのタイムスタンプ)。
vsize
そのプロセスの仮想メモリーのKB単位でのサイズ。
rss
そのプロセスがマシンの物理メモリー内で占める常駐セット(resident set)のKB単位でのサイズ。
pcpu
そのプロセス開始以降に使用されたCPU時間のパーセンテージ。valueは負ではない浮動小数点数。この数値はマルチコアプラットフォームでは理論上100を超過し得るものの、Emacsは通常はシングルスレッドなので100より小さくなる。
pmem
マシンにインストールされた物理メモリー合計のうち、そのプロセスの常駐セットのパーセンテージ。値は0から100の間の浮動小数点数。
args
そのプロセスが呼び出されたときのコマンドライン。これは個々のコマンドライン引数がブランクで区切られた文字列。引数に埋め込まれた空白文字はシステムに応じて適切にクォートされる。GNUやUnixではバックスラッシュ文字によるエスケープ、Windowsではダブルクォート文字で囲まれる。つまりこのコマンドライン文字列はshell-command
のようなプリミティブにより直接使用できる。