プロセスに関する情報を返す関数がいくつかあります。
list-processes
は対話的利用のためにあります。
このコマンドは、活性なすべてのプロセスの一覧を表示する。 さらに、‘Exited’や‘Signaled’である状態の プロセスをすべて削除する。
nil
を返す。
この関数は、削除されていないすべてのプロセスのリストを返す。
(process-list) ⇒ (#<process display-time> #<process shell>)
この関数はnameという名前のプロセスを返す。 あるいは、そのようなプロセスがなければ
nil
を返す。 nameが文字列でないとエラーを通知する。(get-process "shell") ⇒ #<process shell>
この関数は、プロセスprocessを始動するために実行したコマンドを返す。 これは文字列のリストであり、 最初の文字列は実行されたプログラム、 残りの文字列はそのプログラムに与えた引数である。
(process-command (get-process "shell")) ⇒ ("/bin/csh" "-i")
この関数は、プロセスprocessのプロセス番号pidを返す。 これは同じ計算機上で動いている他のすべてのプロセスと プロセスprocessを区別するための整数である。 プロセスのpidは、プロセスを始動したときに オペレーティングシステムのカーネルが選び、 プロセスが終了するまで変わらない。
この関数は、通常の子プロセスに対しては
t
を返し、 ネットワーク接続に対しては(
hostname service)
を返す (see Network)。
この関数は、process-nameの状態をシンボルとして返す。 引数process-nameは、プロセス、バッファ、プロセス名(文字列)、 バッファ名(文字列)のいずれかであること。
実際のサブプロセスに対して可能な値はつぎのとおり。
run
- 実行中のプロセスである。
stop
- 一時停止しているが継続可能である。
exit
- 終了したプロセス。
signal
- 致命的なシグナルを受け取ったプロセスである。
open
- ネットワーク接続を開いている。
closed
- ネットワーク接続は閉じている。 接続をいったん閉じるとそれを再度開くことはできないが、 同じ接続先へ新たな接続を開くことはできる。
nil
- process-nameは既存プロセスの名前ではない。
(process-status "shell") ⇒ run (process-status (get-buffer "*shell*")) ⇒ run x ⇒ #<process xx<1>> (process-status x) ⇒ exitネットワーク接続では、
process-status
は シンボルopen
かclosed
のいずれかを返す。 後者は、相手側が接続を閉じたか Emacsがdelete-process
を行ったことを表す。
この関数は、プロセスprocessの終了状態か、 プロセスをキルしたシグナル番号を返す。 (どちらであるかを判定するには、
process-status
の結果を用いる。) processが終了していないと値は0である。
この関数は、プロセスprocessがEmacsとの通信に用いている端末名を返す。 あるいは、端末のかわりにパイプを用いていれば
nil
を返す (Asynchronous Processesのprocess-connection-type
を参照)。