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>
This commit is contained in:
parent
d7987d9c35
commit
82c2996e2d
@ -391,8 +391,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
|
reference count, allowing the parent to exit independently of the child, unless
|
||||||
there is an established IPC channel between the child and parent.
|
there is an established IPC channel between the child and parent.
|
||||||
|
|
||||||
Example of detaching a long-running process and redirecting its output to a
|
When using the `detached` option to start a long-running process, the process
|
||||||
file:
|
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
|
```js
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
@ -408,12 +427,6 @@ const child = spawn('prg', [], {
|
|||||||
child.unref();
|
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
|
#### options.stdio
|
||||||
|
|
||||||
The `options.stdio` option is used to configure the pipes that are established
|
The `options.stdio` option is used to configure the pipes that are established
|
||||||
|
Loading…
x
Reference in New Issue
Block a user