Process module:System -package:unix -package:process-extras -package:haskell-awk -package:base -package:io-streams -package:crypton
Operations for creating and interacting with sub-processes.
A collection of FFI declarations for interfacing with Win32.
A running process. The three type parameters provide the type of the
standard input, standard output, and standard error streams.
To interact with a
Process use the functions from the section
Interact with a process.
Process a list of flags (usually obtained from
getArgs/expandArgsAt) with a mode. Returns
Left and an error message if the command line fails to parse,
or Right and the associated value.
A handle to a process, which can be used to wait for termination of
the process using
waitForProcess.
None of the process-creation functions in this library wait for
termination: they all return a
ProcessHandle which may be used
to wait for the process later.
On Windows a second wait method can be used to block for event
completion. This requires two handles. A process job handle and a
events handle to monitor.
CPU options impacting cryptography implementation and library
performance.
ProcessId, number of threads, parent ProcessId, process base priority,
path of executable file
The identifier of the CPU-time clock associated with the calling
process. For this clock, the value returned by
getTime
represents the amount of execution time of the current process.
An abstract configuration for a process, which can then be launched
into an actual running
Process. Takes three type parameters,
providing the types of standard input, standard output, and standard
error, respectively.
There are three ways to construct a value of this type:
- With the proc smart constructor, which takes a command name
and a list of arguments.
- With the shell smart constructor, which takes a shell
string
- With the IsString instance via OverloadedStrings. If you
provide it a string with no spaces (e.g., "date"), it will
treat it as a raw command with no arguments (e.g., proc "date"
[]). If it has spaces, it will use shell.
In all cases, the default for all three streams is to inherit the
streams from the parent process. For other settings, see the
setters below for default values.
Once you have a
ProcessConfig you can launch a process from
it using the functions in the section
Launch a process.
An exception that is raised when a process fails.
The exit code of the process.
Process the flags obtained by
getArgs and
expandArgsAt with a mode. Displays an error and exits
with failure if the command line fails to parse, or returns the
associated value. Implemented in terms of
process. This
function makes use of the following environment variables:
- $CMDARGS_COMPLETE - causes the program to produce
completions using complete, then exit. Completions are based on
the result of getArgs, the index of the current argument is
taken from $CMDARGS_COMPLETE (set it to - to
complete the last argument), and the index within that argument is
taken from $CMDARGS_COMPLETE_POS (if set).
- $CMDARGS_HELPER/$CMDARGS_HELPER_PROG -
uses the helper mechanism for entering command line programs as
described in System.Console.CmdArgs.Helper.
Process a list of flags (usually obtained from
getArgs
and
expandArgsAt) with a mode. Throws an error if the
command line fails to parse, or returns the associated value.
Implemeneted in terms of
process. This function does not take
account of any environment variables that may be set (see
processArgs).
If you are in
IO you will probably get a better user experience
by calling
processValueIO.