Next: , Previous: Deleting Processes, Up: Processes


37.6 Process Information

Several functions return information about processes. list-processes is provided for interactive use.

— Command: list-processes

This command displays a listing of all living processes. In addition, it finally deletes any process whose status was ‘Exited’ or ‘Signaled’. It returns nil.

— Function: process-list

This function returns a list of all processes that have not been deleted.

          (process-list)
               => (#<process display-time> #<process shell>)
     
— Function: get-process name

This function returns the process named name, or nil if there is none. An error is signaled if name is not a string.

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

This function returns the command that was executed to start process. This is a list of strings, the first string being the program executed and the rest of the strings being the arguments that were given to the program.

          (process-command (get-process "shell"))
               => ("/bin/csh" "-i")
     
— Function: process-id process

This function returns the pid of process. This is an integer that distinguishes the process process from all other processes running on the same computer at the current time. The pid of a process is chosen by the operating system kernel when the process is started and remains constant as long as the process exists.

— Function: process-name process

This function returns the name of process.

— Function: process-contact process

This function returns t for an ordinary child process, and (hostname service) for a net connection (see Network).

— Function: process-status process-name

This function returns the status of process-name as a symbol. The argument process-name must be a process, a buffer, a process name (string) or a buffer name (string).

The possible values for an actual subprocess are:

run
for a process that is running.
stop
for a process that is stopped but continuable.
exit
for a process that has exited.
signal
for a process that has received a fatal signal.
open
for a network connection that is open.
closed
for a network connection that is closed. Once a connection is closed, you cannot reopen it, though you might be able to open a new connection to the same place.
nil
if process-name is not the name of an existing process.
          (process-status "shell")
               => run
          (process-status (get-buffer "*shell*"))
               => run
          x
               => #<process xx<1>>
          (process-status x)
               => exit
     

For a network connection, process-status returns one of the symbols open or closed. The latter means that the other side closed the connection, or Emacs did delete-process.

— Function: process-exit-status process

This function returns the exit status of process or the signal number that killed it. (Use the result of process-status to determine which of those it is.) If process has not yet terminated, the value is 0.

— Function: process-tty-name process

This function returns the terminal name that process is using for its communication with Emacs—or nil if it is using pipes instead of a terminal (see process-connection-type in Asynchronous Processes).

— Function: process-coding-system process

This function returns a cons cell describing the coding systems in use for decoding output from process and for encoding input to process (see Coding Systems). The value has this form:

          (coding-system-for-decoding . coding-system-for-encoding)
     
— Function: set-process-coding-system process decoding-system encoding-system

This function specifies the coding systems to use for subsequent output from and input to process. It will use decoding-system to decode subprocess output, and encoding-system to encode subprocess input.