summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Jefe Lindstaedt <robert.lindstaedt@gmail.com>2016-02-19 21:17:24 +0100
committerMyles Borins <mborins@us.ibm.com>2016-04-08 16:49:03 -0400
commit505faf63601a4db9365f7c11fc7e7c8c0169d91a (patch)
treee74d6df3c38c3f017eef07fb19657b105347cf19
parent56dda6f33625148387bec2c0b8fcb9b237605017 (diff)
downloadnodejs-505faf63601a4db9365f7c11fc7e7c8c0169d91a.tar.gz
nodejs-505faf63601a4db9365f7c11fc7e7c8c0169d91a.tar.bz2
nodejs-505faf63601a4db9365f7c11fc7e7c8c0169d91a.zip
doc: refine child_process detach behaviour
this adds an example of a long running node process that actually executes node code. Also it mentions the not to harmonic detach behaviours of the different platforms, whereas detaching on unix requires ignoring the child_process' stdio explicitely. PR-URL: https://github.com/nodejs/node/pull/5330 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
-rw-r--r--doc/api/child_process.markdown29
1 files changed, 21 insertions, 8 deletions
diff --git a/doc/api/child_process.markdown b/doc/api/child_process.markdown
index 2e7d137f1..d8b5bc0f1 100644
--- a/doc/api/child_process.markdown
+++ b/doc/api/child_process.markdown
@@ -386,8 +386,27 @@ Doing so will cause the parent's event loop to not include the child in its
reference count, allowing the parent to exit independently of the child, unless
there is an established IPC channel between the child and parent.
-Example of detaching a long-running process and redirecting its output to a
-file:
+When using the `detached` option to start a long-running process, the process
+will not stay running in the background after the parent exits unless it is
+provided with a `stdio` configuration that is not connected to the parent.
+If the parent's `stdio` is inherited, the child will remain attached to the
+controlling terminal.
+
+Example of a long-running process, by detaching and also ignoring its parent
+`stdio` file descriptors, in order to ignore the parent's termination:
+
+```js
+const spawn = require('child_process').spawn;
+
+const child = spawn(process.argv[0], ['child_program.js'], {
+ detached: true,
+ stdio: ['ignore']
+});
+
+child.unref();
+```
+
+Alternatively one can redirect the child process' output into files:
```js
const fs = require('fs');
@@ -403,12 +422,6 @@ const child = spawn('prg', [], {
child.unref();
```
-When using the `detached` option to start a long-running process, the process
-will not stay running in the background after the parent exits unless it is
-provided with a `stdio` configuration that is not connected to the parent.
-If the parent's `stdio` is inherited, the child will remain attached to the
-controlling terminal.
-
#### options.stdio
The `options.stdio` option is used to configure the pipes that are established