#UnsafeChildProcess Source

data UnsafeChildProcess

A child process with no guarantees about whether or not properties or methods (e.g. stdin, send) that depend on options or which function used to start the child process (e.g. stdio, fork) exist.

#Handle Source

data Handle

A handle for inter-process communication (IPC).

#pipe Source

pipe :: StdIO

When used for X, then Y will exist on the child process where X and Y are

  • stdio[0] - stdin
  • stdio[1] - stdout
  • stdio[2] - stderr

Note: when used with stdin, piping the parent stdin to this stream will not cause the child process to terminate when that parent stdin stream ends via Ctrl+D user input. Rather, the child process will hang until the parent process calls Stream.end on the child process' stdin stream. Since it's impossible to know when the user inputs Ctrl+D, inherit should be used instead.

#overlapped Source

#inherit Source

inherit :: StdIO

Uses the parent's corresponding stream.

Note: this value must be used for stdin if one wants to pipe the parent's stdin into the child process' stdin AND cause the child process to terminate when the user closes the parent's stdin via Ctrl+D. Using pipe instead will cause the child process to hang, even when Ctrl+D is pressed, until the parent process calls Stream.end, which cannot be reliably called the moment AFTER Ctrl+D is pressed.

#shareStream Source

shareStream :: forall r. Stream r -> StdIO

#fileDescriptor Source

#defaultStdIO Source

#fromKillSignal' Source

fromKillSignal' :: forall r. (Int -> r) -> (String -> r) -> KillSignal -> r

#Shell Source

data Shell


#enableShell Source

#customShell Source

#StringOrBuffer Source

data StringOrBuffer

Indicates value is either a String or a Buffer depending on what options were used.

#Exit Source

data Exit

Specifies how a child process exited; normally (with an exit code), or due to a signal.