2. The process could not be killed, or
3. Sending a message to the child process failed for whatever reason.
+Note that the `exit`-event may or may not fire after an error has occured. If
+you are listening on both events to fire a function, remember to guard against
+calling your function twice.
+
See also [`ChildProcess#kill()`](#child_process_child_kill_signal) and
[`ChildProcess#send()`](#child_process_child_send_message_sendhandle).
In the child the `process` object will have a `send()` method, and `process`
will emit objects each time it receives a message on its channel.
+Please note that the `send()` method on both the parent and child are
+synchronous - sending large chunks of data is not advised (pipes can be used
+instead, see
+[`child_process.spawn`](#child_process_child_process_spawn_command_args_options)).
+
There is a special case when sending a `{cmd: 'NODE_foo'}` message. All messages
containing a `NODE_` prefix in its `cmd` property will not be emitted in
the `message` event, since they are internal messages used by node core.
* `env` {Object} Environment key-value pairs
* `encoding` {String} (Default: 'utf8')
* `execPath` {String} Executable used to create the child process
+ * `execArgv` {Array} List of string arguments passed to the executable
+ (Default: `process.execArgv`)
* `silent` {Boolean} If true, prevent stdout and stderr in the spawned node
process from being associated with the parent's (default is false)
* Return: ChildProcess object