Module process
:- use_module(library(process)).
No description
process_create(+Exe, +Args:list, +Options).
Create a new process by executing the executable Exe and passing it the Arguments Args.
Note: On windows please take note of windows argument splitting.
Options is a list consisting of the following options:
cwd(+Path)Set the processes working directory toPathprocess(-Process)Processwill be assigned a process handle for the spawned processenv(+List)Don't inherit environment variables and set the variables defined inListenvironment(+List)Inherit environment variables and set/override the variables defined inListstdin(Spec),stdout(Spec)orstderr(Spec)defines how to redirect the spawned processes io streams
The elements of List in env(List)/environment(List) List must be string pairs using =/2. env/1 and environment/1 may not be both specified.
The following stdio Spec are available: * std inherit the current processes original stdio streams (does currently not account for stdio being changed by set_input or set_output) * file(+Path) attach the strea to the file at Path * null discards writes and behaves as eof for read. Equivalent to using file(/dev/null) * pipe(-Steam) create a new pipe and assigne one end to the created process and the other end to Stream
Specifying an option multiple times is an error, when an option is not specified the following defaults apply:
cwd(".")environment([])stdin(std),stdout(std),stderr(std)
process_wait(+Process, Status).
See process_create/3 with Options = []
process_wait(+Process, Status, Options).
Wait for the process behind the process handle Process to exit.
When the process exits regulary Status will be unified with exit(Exit) where Exit is the processes exit code. When the process exits was killed Status will be unified with killed(Signal) where Signal is the signal number that killed the process. When the process doesn't exit before the timeout Status will be unified with timeout.
Options is a a list of the following options
timeout(Timeout) supported values for
Timeoutare 0 orinfinite
Each options may be specified at most once, when an option is not specified the following defaults apply:
- timeout(infinite)
process_kill(+Process).
Kill the process using the process handle Process. On Unix this sends SIGKILL.
Only works for processes spawned with process_create/3 that have not yet been release with process_release/1
process_release(+Process)
wait for the process to exit (if not already) and release process handle Process
It's an error if Process is not a valid process handle