process
Process libraries
| Version on this page: | 1.6.18.0 | 
| LTS Haskell 24.18: | 1.6.26.1 | 
| Stackage Nightly 2025-11-03: | 1.6.25.0 | 
| Latest on Hackage: | 1.6.26.1 | 
process-1.6.18.0@sha256:cd0a3e0376b5a8525983d3131a31e52f9ffefc278ce635eec45a9d3987b8be3e,3025Module documentation for 1.6.18.0
This package contains libraries for dealing with system processes.
The typed-process package is a more recent take on a process API, which uses this package internally. It features better binary support, easier concurrency, and a more composable API. You can read more about it at https://github.com/fpco/typed-process/#readme.
Changes
Changelog for process package
1.6.18.0 September 2023
- Fix deadlock when waiting for process completion and process jobs #273
 - Support 
delegate_ctlcon Windows. #278 - Drop support for 
vfork#261 - Javascript backend support
 - Fix potential segmentation fault on macOS #295
 
1.6.17.0 February 2023
- Improved documentation for the 
OpenExtHandleconstructor. 
1.6.16.0 October 2022
1.6.15.0 August 2022
- Correct permissions on createPipe on Windows 234
 - Ensure that both ends of pipes on Windows are created in the same mode 234
 - Fixed an issue with WINIO where giving an application an inherited pipe can cause it to misbehave 245
 - Set the encoding on WINIO created pipes to the local encoding as with MIO 248
 - cbits/fork-exec: Don’t dup2 identical fds #250
 
1.6.14.0 February 2022
- posix: Ensure that 
errnois set afterposix_spawnpfails #228 - Fix 
waitForProcessnot closing process handles withdelegate_ctlc#231 - Don’t use 
posix_spawnon platforms where it does not reportENOENTin caes where the requested executable does not exist #224 - Ensure that 
find_executablecorrectly-locates executables when a change in working directory is requested #219 - Fix capitalization error allowing 
execvpeto be used when available. 
1.6.13.2 July 2021
posix_spawn: Don’t attempt todup2identical fds #214
1.6.13.1 July 2021
- Patches for the previous release
 
1.6.13.0 July 2021
- Refactoring of POSIX process logic #208
 
1.6.12.0 June 2021
- Add function 
getCurrentPidto get the currently executing process’ ID #205 
1.6.11.0 January 2021
- Windows: Add support for new I/O manager in GHC 8.12#177
 - Deprecate use of 
createPipeFdin favor ofcreatePipe - Fix MVar re-entrant problem on Windows with 
terminateProcessand process jobs. See #199 
1.6.10.0 June 2020
- Give a usable buffer to 
_pipeon Windows #182 
1.6.9 May 2020
- Windows: Fix buffer size of 
QueryInformationJobObjectrequest #176 
1.6.8.2 March 2020
- Fix another process wait bug on Windows.
 
1.6.8.1 March 2020
- Fix a few warnings on Windows.
 
1.6.8.0 February 2020
- Fix several bugs on Windows where use of process jobs would result in the process being prematurely terminated. See #168.
 
1.6.7.0 November 2019
- Fix a race condition on Windows that happens when you use process jobs and one of the child processes terminates but doesn’t release its resources immediately. Control returns to the caller too soon in this scenario. See #159
 
1.6.6.0 October 2019
- Fix a potential privilege escalation issue (or, more precisely, privileges
not being dropped when this was the user’s intent) where the groups of the
spawning process’s user would be incorrectly retained due to a missing call to
initgroups[#149]. - Bug fix: Prevent stripping undecodable bytes from environment variables when in a non-unicode locale. #152
 - Expose 
runInteractiveProcess_lockinSystem.Process.Internals#154 
1.6.5.1 June 2019
- Version bound bumps
 - Slightly nicer error messages for internal errors
 
1.6.5.0 December 2018
- Bug fix: On Windows ignore ERROR_ACCESS_DENIED for TerminateProcess() if the process did terminate #110
 - Improve documentation of the 
NoStreamdata constructor 
1.6.4.0 July 2018
- Bug fix: Don’t leak pipes on failure #122
 - Expose 
cleanupProcessfromSystem.Process#130 - Drop support for GHC before 7.10.3
 
1.6.3.0 January 2018
- Added 
getPidand export of platform specificPidtype #109 
1.6.2.0 October 2017
- Allow async exceptions to be delivered to masked thread calling 
waitForProcess#101 - Update Win32 package version to 2.6.x
 
1.6.1.0 July 2017
1.6.0.0 February 2017
1.5.0.0 February 2017
- Bug fix: Don’t close already closed pipes #81
 - Relax version bounds of Win32 to allow 2.5.
 - Add support for monitoring process tree for termination with the parameter 
use_process_jobsinCreateProcesson Windows. Also added a functionterminateJobto kill entire process tree. 
1.4.3.0 December 2016
- New exposed 
withCreateProcess - Derive 
ShowandEqforCreateProcess,CmdSpec, andStdStream 
1.4.2.0 January 2016
- Added 
createPipeFD#52- New function 
createPipeFDadded which returns a POSIX File Descriptor (CInt) instead of a GHC Handle to a pipe 
 - New function 
 
1.4.1.0 November 2015
- Use less CPP #47
- Refactor to have separate Windows and POSIX modules internally
 - Remove the broken non-GHC code paths
 
 
1.4.0.0 November 2015
- Added 
child_userandchild_grouptoCreateProcessfor unix. #45 
1.3.0.0 August 2015
- Add 
StdStream(NoStream)to have standard handles closed. #13 - Support for Windows 
DETACHED_PROCESSandsetsid#32 - Support for Windows 
CREATE_NEW_CONSOLE#38 
1.2.3.0 March 2015
- 
Meaningful error message when exe not found on close_fds is True
 - 
New functions
readCreateProcessandreadCreateProcessWithExitCode 
1.2.2.0 Jan 2015
- 
Fix delegated CTRL-C handling in
createProcessin case of failed process creation. See issue #15 for more details. - 
waitpidon child PID after pre-exec failure in child to prevent zombies. See also issue #14. 
1.2.1.0 Dec 2014
- 
Add support for
base-4.8.0.0 - 
Remove Hugs98 specific code
 - 
New
IsString CmdSpecinstance - 
Expose documentation for
System.Process.Internals - 
With GHC 7.10,
System.CmdandSystem.Processare nowSafe(when compiled with older GHC versions they are justTrustworthy) - 
Expose
createProcess_function, and document behavior ofUseHandleforcreateProcess. See issue #2. - 
New
System.Process.createPipeoperation. See also GHC #8943 
1.2.0.0 Dec 2013
- Update to Cabal 1.10 format
 - Remove NHC specific code
 - Add support for 
base-4.7.0.0 - Improve 
showCommandForUserto reduce redundant quoting - New functions 
callProcess,callCommand,spawnProcessandspawnCommand - Implement WCE handling according to http://www.cons.org/cracauer/sigint.html
 - New 
delegate_ctlcfield inCreateProcessfor WCE handling - Use 
ExitFailure (-signum)on Unix when a proc is terminated due to a signal. - Deprecate 
module System.Cmd - On non-Windows, the child thread now comunicates any errors back to the parent thread via pipes.
 - Fix deadlocks in 
readProcessandreadProcessWithExitCode