Process libraries

Version on this page:
LTS Haskell 11.0:
Stackage Nightly 2018-03-17:
Latest on Hackage:

See all snapshots process appears in

BSD3 licensed
Maintained by

Module documentation for

There are no documented modules for this package.

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


Changelog for process package January 2018

  • Added getPid and export of platform specific Pid type #109 October 2017

  • Allow async exceptions to be delivered to masked thread calling waitForProcess #101
  • Update Win32 package version to 2.6.x July 2017

  • Expose CGid, GroupID, and UserID from System.Process.Internals #90 #91 February 2017

  • Fix: waitForProcess race condition #46 #58 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_jobs in CreateProcess on Windows. Also added a function terminateJob to kill entire process tree. December 2016

  • New exposed withCreateProcess
  • Derive Show and Eq for CreateProcess, CmdSpec, and StdStream January 2016

  • Added createPipeFD #52
    • New function createPipeFD added which returns a POSIX File Descriptor (CInt) instead of a GHC Handle to a pipe November 2015

  • Use less CPP #47
    • Refactor to have separate Windows and POSIX modules internally
    • Remove the broken non-GHC code paths November 2015

  • Added child_user and child_group to CreateProcess for unix. #45 August 2015

  • Add StdStream(NoStream) to have standard handles closed. #13
  • Support for Windows DETACHED_PROCESS and setsid #32
  • Support for Windows CREATE_NEW_CONSOLE #38 March 2015

  • [Meaningful error message when exe not found on close_fds is


  • New functions readCreateProcess and readCreateProcessWithExitCode Jan 2015

  • Fix delegated CTRL-C handling in createProcess in case of failed process creation. See issue #15 for more details.

  • waitpid on child PID after pre-exec failure in child to prevent zombies. See also issue #14. Dec 2014

  • Add support for base-

  • Remove Hugs98 specific code

  • New IsString CmdSpec instance

  • Expose documentation for System.Process.Internals

  • With GHC 7.10, System.Cmd and System.Process are now Safe (when compiled with older GHC versions they are just Trustworthy)

  • Expose createProcess_ function, and document behavior of UseHandle for createProcess. See issue #2.

  • New System.Process.createPipe operation. See also GHC #8943 Dec 2013

  • Update to Cabal 1.10 format
  • Remove NHC specific code
  • Add support for base-
  • Improve showCommandForUser to reduce redundant quoting
  • New functions callProcess, callCommand, spawnProcess and spawnCommand
  • Implement WCE handling according to
  • New delegate_ctlc field in CreateProcess for 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 readProcess and readProcessWithExitCode
comments powered byDisqus