The function
pipe-kill-process
tries to kill the process of a pipe stream.
pipe-stream
must be the result of open-pipe.
pipe-kill-process
tries to kill the process that open-pipe creates.
The return value
nil
means that the process has already died. In this case the process is guaranteed to have died.
The return value
t
means that the process was still alive when
pipe-kill-process
was called, and it tried to kill it.
On Microsoft Windows, it causes the process to exit, but there may be some delay until it actually exits, so the process may still be alive at the time
pipe-kill-process
returns.
On Unix it sends SIGTERM to the process, which normally would cause it to exit, but in principle the process may handle SIGTERM and continue to run.
When open-pipe is called with a string, it executes it using a shell (non-Windows) or cmd (Windows), so the process that
pipe-kill-process
will kill is the shell or cmd. When open-pipe is called with a list, it executes the process (first element of the list) directly, and
pipe-kill-process
kills this process (the different behavior is actually documented in call-system).
LispWorks User Guide and Reference Manual - 21 Dec 2011