ChildProcess
A running program is a process. A process spawned from another process is known as a child process.
This module allow you to spawn child processes.
Initialization
This value represents the permission to spawn child processes.
Only code you trust should have access to this value.
Initialize the ChildProcess
subsystem, which gains you the permission to
spawn child processes.
Running processes
Options to customize the execution of a child process created with run.
shell
is the shell to run the process in (if any)workingDirectory
specifies the working directory of the processenvironmentVariables
specifies the environment variables the process has access tomaximumBytesWrittenToStreams
specifies an upper bound of bytes that can be returned from the processrunDuration
specifies a maximum amount of time a process is allowed to run before exiting
A nice default set of options for the run function
Which shell should the child process run in?
NoShell
executes the process directly, without any shell. A little bit more efficient, but you lose some convinience as shell behaviour (like glob patterns) isn't available for argumentsDefaultShell
executes the process in the default shell for the currently running systemCustomShell
executes the process in the specified shell.
What should be the working directory of the process?
InheritWorkingDirectory
inherits the working directory from its parentSetWorkingDirectory
sets the working directory to the specified value (doesn't affect parent)
What should be the environment variables of the process?
InheritEnvironmentVariables
inherits the environment variables from its parentMergeWithEnvironmentVariables
inherits the environment variables from its parent, with the specified modificationsReplaceEnvironmentVariables
sets the environment variables to the specified dictionary
How long is the process allowed to run before it's forcefully terminated?
NoLimit
means it can run foreverMilliseconds
sets the limit to the specified number of milliseconds
Return value when a process terminates due to an error
The exit code provides some hint of what went wrong, but what it means depends on the program which was run.
Return value when a process terminates without error
Execute a process with a given name, arguments and options, and wait for it to terminate.
run permission "cat" [ "my_file" ] defaultRunOptions
Same as run, but with defaultRunOptions passed in as options.
Spawning processes
Options to customize the execution of a child process created with spawn.
shell
is the shell to run the process in (if any)workingDirectory
specifies the working directory of the processenvironmentVariables
specifies the environment variables the process has access torunDuration
specifies a maximum amount of time a process is allowed to run before exitingconnection
let's you specify how close the new process is connected to the application
What relation should the newly spawned process have with the running application?
Integrated
means that the spawned process shares the stdin, stdout and stderr streams and that the application will wait for its termination.Ignored
means that stdin, stdout and stderr is seperate but that the application will still wait for its termination.Detached
means that the application can terminate even if the spawned process is still running.
A nice default set of options for the spawn function.
Spawn a process with a given name, arguments and options, and let it run in the background. This is mostly helpful for starting long-running processes.
spawn permission "tail" [ "my_file" ] defaultSpawnOptions
Same as [spawn], but with defaultSpawnOptions passed in as options.
Spawn a process with the given name, arguments and options, and let it run in the background. When the process completes, trigger the given message with the exit code.
spawnAndNotifyOnExit permission SleepFinished "sleep" [ "2" ] defaultSpawnOptions