【Node.js】child_process 子进程
    		       		warning:
    		            这篇文章距离上次修改已过444天,其中的内容可能已经有所变动。
    		        
        		                
                在Node.js中,child_process模块提供了创建子进程的API。你可以使用child_process模块中的spawn, exec, execFile 或 fork 函数来创建子进程。
以下是使用child_process模块的几种方法的示例代码:
- 使用
spawn方法: 
const { spawn } = require('child_process');
const ls = spawn('ls', ['-lh', '/usr']);
 
ls.stdout.on('data', (data) => {
  console.log(`stdout: ${data}`);
});
 
ls.stderr.on('data', (data) => {
  console.error(`stderr: ${data}`);
});
 
ls.on('close', (code) => {
  console.log(`子进程退出码:${code}`);
});- 使用
exec方法: 
const { exec } = require('child_process');
 
exec('ls -lh /usr', (error, stdout, stderr) => {
  if (error) {
    console.error(`执行的错误: ${error}`);
    return;
  }
  console.log(`stdout: ${stdout}`);
  console.error(`stderr: ${stderr}`);
});- 使用
execFile方法: 
const { execFile } = require('child_process');
 
execFile('ls', ['-lh', '/usr'], (error, stdout, stderr) => {
  if (error) {
    console.error(`执行的错误: ${error}`);
    return;
  }
  console.log(`stdout: ${stdout}`);
  console.error(`stderr: ${stderr}`);
});- 使用
fork方法来运行一个Node.js脚本: 
const { fork } = require('child_process');
 
const child = fork('./subprocess.js');
 
child.on('message', (msg) => {
  console.log('父进程收到消息:', msg);
});
 
child.send({ hello: 'world' });在fork的例子中,假设subprocess.js是一个简单的Node.js脚本,它可能看起来像这样:
process.on('message', (msg) => {
  console.log('子进程收到消息:', msg);
  process.send({ goodbye: 'world' });
});这些示例展示了如何使用child_process模块来创建和管理子进程。根据你的具体需求,你可以选择适合的方法来创建子进程。
评论已关闭