diff --git a/doc/api/child_process.md b/doc/api/child_process.md index 50ab445ed533fe..b08ba65917aadc 100644 --- a/doc/api/child_process.md +++ b/doc/api/child_process.md @@ -921,7 +921,8 @@ changes: * `input` {string|Buffer|TypedArray|DataView} The value which will be passed as stdin to the spawned process. If `stdio[0]` is set to `'pipe'`, Supplying this value will override `stdio[0]`. - * `stdio` {string|Array} Child's stdio configuration. `stderr` by default will + * `stdio` {string|Array} Child's stdio configuration. + See [`child_process.spawn()`][]'s [`stdio`][]. `stderr` by default will be output to the parent process' stderr unless `stdio` is specified. **Default:** `'pipe'`. * `env` {Object} Environment key-value pairs. **Default:** `process.env`. @@ -962,6 +963,34 @@ If the process times out or has a non-zero exit code, this method will throw an function. Any input containing shell metacharacters may be used to trigger arbitrary command execution.** +```js +const { execFileSync } = require('node:child_process'); + +try { + const stdout = execFileSync('my-script.sh', ['my-arg'], { + // Capture stdout and stderr from child process. Overrides the + // default behavior of streaming child stderr to the parent stderr + stdio: 'pipe', + + // Use utf8 encoding for stdio pipes + encoding: 'utf8', + }); + + console.log(stdout); +} catch (err) { + if (err.code) { + // Spawning child process failed + console.error(err.code); + } else { + // Child was spawned but exited with non-zero exit code + // Error contains any stdout and stderr from the child + const { stdout, stderr } = err; + + console.error({ stdout, stderr }); + } +} +``` + ### `child_process.execSync(command[, options])`