現在のEmacsセッションのサブプロセスであるプロセスへのアクセスや操作に加え、Emacs Lispプログラムは他のプロセスにもアクセスできます。これらをEmacsのサブプロセスと区別するため、システムプロセスと呼びます。
Emacsは、システムプロセスにアクセスするためのプリミティブをいくつか提供しています。すべてのプラットフォームがこれらのプリミティブをサポートしているわけではなく、サポートしていないプラットフォームでは、これらのプリミティブはnilを返します。
この関数は、システム上で動作しているすべてのプロセスの一覧を返します。各プロセスはPIDによって識別されます。これはOSによって割り当てられる数値のプロセスIDであり、同一マシン上で同時に動作している他のすべてのプロセスと当該プロセスを区別するものです。
default-directory
がリモートホストを指している場合、そのホストのプロセスが返されます。
この関数は、プロセスID pid
で指定されたプロセスの属性を格納したアリストを返します。アリスト内の各エントリは (key . value) という形式であり、key が属性を、value
がその属性の値を表します。この関数が返し得る各種属性 key
を以下に示します。すべてのプラットフォームがこれらの属性をすべてサポートしているわけではありません。サポートされていない属性の場合、そのエントリは返されるアリストに含まれません。
default-directory がリモートホストを指している場合、pid はそのホストのプロセスとみなされます。
euidプロセスを呼び出したユーザーの実効ユーザーID。対応する value は数値です。現在の Emacs
セッションを実行しているユーザーと同じユーザーによってプロセスが呼び出された場合、その値は user-uid が返す値と同一になります(ユーザー識別 を参照)。
userプロセスの実効ユーザーIDに対応するユーザー名(文字列)。
egid実効ユーザーIDのグループID(数値)。
group実効ユーザーのグループIDに対応するグループ名(文字列)。
commプロセス内で実行されるコマンドの名前。通常は先頭のディレクトリを除いた、プロセスの実行ファイルの名前を指定する文字列です。ただし、一部の特殊なシステムプロセスでは、プログラムの実行ファイルに該当しない文字列が返されることがあります。
stateプロセスの状態コード。これはプロセスのスケジューリング状態をエンコードした短い文字列です。以下に、最も頻繁に見られるコードの一覧を示します:
"D"割り込み不能スリープ(通常はI/O)
"R"実行中
"S"中断可能なスリープ(何らかのイベントを待機中)
"T"例えばジョブ制御信号によって停止した
"Z"ゾンビ: 終了したが、親プロセスによって回収されなかったプロセス
指定可能な状態の全一覧については、psコマンドのマニュアルページを参照してください。
ppid親プロセスのプロセスID(数値)。
pgrpプロセスのプロセスグループID、数値。
sessプロセスのセッションID。これは、プロセスのセッションリーダーのプロセスIDにあたる数値です。
ttnameプロセスの制御端末の名前を示す文字列。UnixおよびGNUシステムでは、通常、/dev/pts65のような対応する端末デバイスのファイル名となる。
tpgidプロセスの端末を使用するフォアグラウンドプロセスグループの数値プロセスグループID。
minfltプロセスの起動以降に発生したマイナーページフォールトの回数。(マイナーページフォールトとは、ディスクからの読み込みを伴わないものを指す。)
majfltプロセスの起動以降に発生したメジャーページフォールトの回数。(メジャーページフォールトはディスクからの読み込みを必要とするため、マイナーページフォールトよりもコストが高くなる。)
cminfltcmajfltminflt や majflt
と同様ですが、指定されたプロセスのすべての子プロセスにおけるページフォールト数も含めてください。
utimeアプリケーションのコードを実行するために、プロセスがユーザーコンテキストで費やした時間。対応する value は Lisp のタイムスタンプです(Time of Day を参照)。
stimeシステムコール処理のため、システム(カーネル)コンテキストでプロセスが費やした時間。対応する value は Lisp のタイムスタンプである。
timeutime と stime の和。対応する
value は Lisp のタイムスタンプである。
cutimecstimectimeutime、stime、timeと同様ですが、指定されたプロセスのすべての子プロセスの時刻を含みます。
priプロセスの数値的な優先順位。
niceプロセスのnice値(数値)。(nice値が小さいプロセスほど、優先的にスケジューリングされる。)
thcountプロセス内のスレッド数。
start処理が開始された時刻(Lispのタイムスタンプとして)。
etimeプロセス開始からの経過時間(Lispのタイムスタンプとして)。
vsizeプロセスの仮想メモリサイズ(キロバイト単位)。
rssプロセスの常駐セットのサイズ、すなわちマシンの物理メモリ内でプロセスが占有するキロバイト数。
pcpuプロセスの起動以降に消費されたCPU時間の割合。対応する value は非負の浮動小数点数です。理論上はマルチコアプラットフォームにおいてこの値が100を超える可能性がありますが、Emacsは通常シングルスレッドで動作するため、通常は100未満となります。
pmemプロセスの常駐セットが使用している、マシンに搭載された物理メモリ総量に対する割合。値は0から100までの浮動小数点数です。
argsプロセスが呼び出された際のコマンドライン。これは、個々のコマンドライン引数が空白で区切られた文字列であり、引数に含まれる空白文字は、システムのシェルに応じて適切にクォートされます。GNUおよびUnixではバックスラッシュ文字でエスケープされ、Windowsではダブルクォート文字で囲まれます。したがって、このコマンドライン文字列は
shell-command のようなプリミティブで直接使用できます。