Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Revision 797271 of system/child_process

  • Revision slug: Mozilla/Add-ons/SDK/Low-Level_APIs/system_child_process
  • Revision title: system/child_process
  • Revision id: 797271
  • Created:
  • Creator: wbamberg
  • Is current revision? No
  • Comment

Revision Content

Experimental

An implementation of the node.js child_process API.

This module enables you to execute a child program in a new process. Since it emulates the node.js child_process API, it's not documented separately here. However, there are a few differences to be aware of:

  • you need to require() the module using require("sdk/system/child_process")
  • fork() is not supported
  • gid and uid are not supported
  • in node.js, spawn() and exec() inherit the environment variables from the parent process, by default. The SDK versions don't: so when you specify a command you must pass in a complete path to the command or use the env option to set up the child process environment.

Here's an example that adapts the example in node's documentation for spawn():

var child_process = require("sdk/system/child_process");

var ls = child_process.spawn('/bin/ls', ['-lh', '/usr']);

ls.stdout.on('data', function (data) {
  console.log('stdout: ' + data);
});

ls.stderr.on('data', function (data) {
  console.log('stderr: ' + data);
});

ls.on('close', function (code) {
  console.log('child process exited with code ' + code);
});

 

Revision Source

<div class="note">
<p>Experimental</p>
</div>

<p><span class="seoSummary">An implementation of the <a href="https://nodejs.org/api/child_process.html">node.js <code>child_process</code> API</a>.</span></p>

<p>This module enables you to execute a child program in a new process. Since it emulates the node.js <code>child_process</code> API, it's not documented separately here. However, there are a few differences to be aware of:</p>

<ul>
 <li>you need to require() the module using <code>require("sdk/system/child_process")</code></li>
 <li><code>fork()</code> is not supported</li>
 <li><code>gid</code> and <code>uid</code> are not supported</li>
 <li>in node.js, <code>spawn()</code> and <code>exec()</code> inherit the environment variables from the parent process, by default. The SDK versions don't: so when you specify a command you must pass in a complete path to the command or use the <code>env</code> option to set up the child process environment.</li>
</ul>

<p>Here's an example that adapts the example in node's documentation for <a href="https://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options"><code>spawn()</code></a>:</p>

<pre class="brush: js">
var child_process = require("sdk/system/child_process");

var ls = child_process.spawn('/bin/ls', ['-lh', '/usr']);

ls.stdout.on('data', function (data) {
  console.log('stdout: ' + data);
});

ls.stderr.on('data', function (data) {
  console.log('stderr: ' + data);
});

ls.on('close', function (code) {
  console.log('child process exited with code ' + code);
});</pre>

<p>&nbsp;</p>
Revert to this revision