GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/elisp/System-Processes.html ・ emacs-doc.conao3.com

41.12 他のプロセスへのアクセス

現在のEmacsセッションのサブプロセスであるプロセスへのアクセスや操作に加え、Emacs Lispプログラムは他のプロセスにもアクセスできます。これらをEmacsのサブプロセスと区別するため、システムプロセスと呼びます。

Emacsは、システムプロセスにアクセスするためのプリミティブをいくつか提供しています。すべてのプラットフォームがこれらのプリミティブをサポートしているわけではなく、サポートしていないプラットフォームでは、これらのプリミティブはnilを返します。

関数: list-system-processes

この関数は、システム上で動作しているすべてのプロセスの一覧を返します。各プロセスはPIDによって識別されます。これはOSによって割り当てられる数値のプロセスIDであり、同一マシン上で同時に動作している他のすべてのプロセスと当該プロセスを区別するものです。

default-directory がリモートホストを指している場合、そのホストのプロセスが返されます。

関数: process-attributes pid

この関数は、プロセス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

プロセスの起動以降に発生したメジャーページフォールトの回数。(メジャーページフォールトはディスクからの読み込みを必要とするため、マイナーページフォールトよりもコストが高くなる。)

cminflt
cmajflt

minflt や majflt と同様ですが、指定されたプロセスのすべての子プロセスにおけるページフォールト数も含めてください。

utime

アプリケーションのコードを実行するために、プロセスがユーザーコンテキストで費やした時間。対応する value は Lisp のタイムスタンプです(Time of Day を参照)。

stime

システムコール処理のため、システム(カーネル)コンテキストでプロセスが費やした時間。対応する value は Lisp のタイムスタンプである。

time

utime と stime の和。対応する value は Lisp のタイムスタンプである。

cutime
cstime
ctime

utime、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 のようなプリミティブで直接使用できます。