




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.
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).pipe-kill-process needs to be be called before the stream is closed by close. On Unix-like systems it works after close too, but for compatibility pipe-kill-process should not be called after close. nil, there is a possibility that the child process that open-pipe started died and another process started with the same Process ID, and then pipe-kill-process may wrongly kill the new process. When open-pipe is called with save-exit-status non-nil, the status of the child process is tracked properly, and pipe-kill-process is guaranteed to do the right thing. On Windows pipe-kill-process always does the right thing.LispWorks User Guide and Reference Manual - 13 Feb 2015