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


40.6 プロセスの情報

プロセスの状態に関する情報をリターンする関数がいくつかあり。

Command: list-processes &optional query-only buffer

このコマンドは、すべての生きたプロセスのリストを表示する。加えてこれは最後に、状態が‘Exited’か‘Signaled’だったすべてのプロセスを削除する。このコマンドはnilをリターンする。

プロセスはメジャーモードがProcess Menuモードであるような、*Process List*という名前のバッファーに表示される(オプション引数bufferで他の名前を指定していない場合)。

query-onlyが非nilなら、queryフラグが非nilのプロセスだけをリストする。exit前の問い合わせを参照のこと。

Function: process-list

この関数は削除されていないすべてのプロセスのリストをリターンする。

(process-list)
     ⇒ (#<process display-time> #<process shell>)
Function: num-processors &optional query

この関数はプロセッサー数を正の整数としてリターンする。使用可能なスレッドの各実行ユニットはプロセッサーとしてカウントされる。このカウントにはデフォルトでは利用できるプロセッサー数が含まれる。これはOpenMPの環境変数OMP_NUM_THREADSををセットすることによってオーバーライドできる。オプション引数querycurrentなら、この関数はOMP_NUM_THREADSを無視する。queryallならシステム上にあるがカレントプロセスで利用できないプロセッサーもカウントする。

Function: get-process name

この関数はname (文字列)というプロセス、存在しなければnilをリターンする。引数nameはプロセスオブジェクトでもよく、この場合にはそれがリターンされる。

(get-process "shell")
     ⇒ #<process shell>
Function: process-command process

この関数はprocessを開始するために実行されたコマンドをリターンする。これは文字列のリストで1つ目の文字列は実行されたプログラム、残りの文字列はそのプログラムに与えられた引数。ネットワーク接続、シリアル接続、pipe接続にたいしてはnil (プロセスは実行中)かt (プロセスは停止中)のいずれか。

(process-command (get-process "shell"))
     ⇒ ("bash" "-i")
Function: process-contact process &optional key no-block

この関数はネットワーク接続、シリアル接続、pipe接続がセットアップされた方法に関する情報をリターンする。keynilならネットワーク接続には(hostname service)、シリアル接続には(port speed)、pipe接続にはtをリターンする。普通の子プロセスにたいしては、この関数はkeynilで呼び出されると常にtをリターンする。

keytなら値はその接続、サーバー、シリアルポート、またはpipeについての完全な状態情報、すなわちmake-network-processmake-serial-process、またはmake-pipe-process内で指定されるキーワードと値のリストとなる。ただしいくつかの値については、指定した値のかわりにカレント状態を表す値となる。

ネットワークプロセスにたいしては以下の値が含まれる(完全なリストはmake-network-processを参照):

:buffer

値にはプロセスのバッファーが割り当てられる。

:filter

値にはプロセスのフィルター関数が割り当てられる。プロセスのフィルター関数を参照のこと。

:sentinel

値にはプロセスのセンチネル関数が割り当てられる。センチネル: プロセス状態の変更の検知を参照のこと。

:remote

接続にたいしては内部的なフォーマットによるリモートピアーのアドレス。

:local

内部的なフォーマットによるローカルアドレス。

:service

この値はサーバーではservicetを指定すると実際のポート番号。

make-network-process内で明示的に指定されていなくても:local:remoteは値に含まれる。

シリアル接続についてはmake-serial-process、キーのリストはserial-process-configureを参照のこと。pipe接続についてはmake-pipe-processを参照のこと。

keyがキーワードなら、この関数はそのキーワードに対応する値をリターンする。

processがまだ完全にセットアップされていない非ブロッキングネットワークストリームなら、この関数はセットアップされるまでブロックする。オプションのno-blockパラメーターが与えられると、この関数はブロックせずにnilをリターンする。

Function: process-id process

この関数はprocessPIDをリターンする。これは同じコンピューター上でカレント時に実行中の他のすべてのプロセスからプロセスprocessを区別するための整数。プロセスのPIDはプロセスの開始時にオペレーティングシステムのカーネルにより選択されて、そのプロセスが存在する限り定数として保たれる。この関数はネットワーク接続、シリアル接続、pipe接続にはnilをリターンする。

Function: process-name process

この関数はprocessの名前を文字列としてリターンする。

Function: process-status process-name

この関数はprocess-nameの状態を文字列でリターンする。引数process-nameはプロセス、バッファー、またはプロセス名(文字列)でなければならない。

実際のサブプセスにたいして可能な値は:

run

実行中のプロセス。

stop

停止しているが継続可能なプロセス。

exit

exitしたプロセス。

signal

致命的なシグナルを受信したプロセス。

open

オープンされたネットワーク接続、シリアル接続、またはpipe接続。

closed

クローズされたネットワーク接続、シリアル接続、またはpipe接続。一度クローズされた接続は、たとえ同じ場所にたいして新たな接続をオープンすることができたとしても再度オープンすることはできない。

connect

完了を待つ非ブロッキング接続。

failed

完了に失敗した非ブロッキング接続。

listen

listen中のネットワークサーバー。

nil

process-nameが既存のプロセス名でない場合。

(process-status (get-buffer "*shell*"))
     ⇒ run

ネットワーク接続、シリアル接続、pipe接続にたいしてprocess-statusopenstop、またはclosedいずれかのシンボルをリターンする。closedは相手側が接続をクローズしたか、あるいはEmacsがdelete-processを行なったことを意味する。値stopはその接続でstop-processが呼び出されたことを意味する。

Function: process-live-p process

この関数はprocessがアクティブなら、非nilをリターンする。状態がrunopenlistenconnectstopのプロセスはアクティブとみなされる。

Function: process-type process

この関数はネットワーク接続やサーバーにたいしてはnetwork、シリアルポート接続にたいしてはserial、pipe接続にたいしてはpipe、プログラム実行用に作成されたサブプロセスにたいしてはrealというシンボルをリターンする。

Function: process-exit-status process

この関数はprocessのexitステータス、またはプロセスをkillしたシグナル番号をリターンする(いずれであるかの判定にはprocess-statusの結果を使用)。processがまだ終了していなければ値は0。すでにcloseされたネットワーク接続、シリアル接続、pipe接続についての値は接続のcloseが正常か異常かによって0か256のいずれかとなる。

Function: process-tty-name process &optional stream

この関数はprocessがEmacsとの対話に使用する端末名、ptyではなくpipeを使用する場合にはnilをリターンする(非同期プロセスの作成process-connection-typeを参照)。この関数processの標準ストリームのいずれかが端末を使用していれば、デフォルトではその端末の名前をリターンする。streamstdinstdoutstderrのいずれかであれば、この関数は特にそのストリームにたいしてprocessが使用している端末の名前(または上述したようにnil)をリターンする。これを用いれば、特定のストリームがpipeとptyのどちらを使用しているかを判断できる。

この関数はprocessがリモートホストで実行中のプログラムを表す場合には、processと対話するローカルの端末名をリターンする。そのプログラムがリモートホスト上で使用している端末の名前については、そのプロセスにremote-ttyプロパティで取得できる。この関数はprocessがネットワーク、シリアル、あるいはpipeによる接続を表す場合には常にnilをリターンする。

Function: process-coding-system process

この関数はprocessからの出力のデコードに使用するコーディングシステムと、processへの入力のエンコードに使用するコーディングシステムを記述するコンスセル(decode . encode)をリターンする(コーディングシステムを参照)。

Function: set-process-coding-system process &optional decoding-system encoding-system

この関数はprocessにたいする後続の入出力に使用するコーディングシステムを指定する。これはサブプロセスの出力のデコードにdecoding-system、入力のエンコードにencoding-systemを使用する。

すべてのプロセスには、そのプロセスに関連するさまざまな値を格納するために使用できるプロパティリストもあります。

Function: process-get process propname

この関数はprocessのプロパティpropnameの値をリターンする。

Function: process-put process propname value

この関数はprocessのプロパティpropnameの値にvalueをセットする。

Function: process-plist process

この関数はprocessのプロセスplistをリターンする。

Function: set-process-plist process plist

この関数はprocessのプロセスplistにplistをセットする。


Next: プロセスへの入力の送信, Previous: プロセスの削除, Up: プロセス   [Contents][Index]