在nodejs的不同会话中执行终端命令

时间:2017-11-08 15:01:38

标签: node.js child-process

我想用nodejs脚本执行shell命令。我有一个问题

As nodejs documentation says;

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.log(`stderr: ${data}`);
});

ls.on('close', (code) => {
  console.log(`child process exited with code ${code}`);
});

这很有效。

但是,如果我想运行一个无穷无尽的命令并且我想运行另一个命令,该怎么办。

例如;

const { spawn } = require('child_process');

    const simpleServer = spawn('python', ['-m', 'SimpleHTTPServer', '1234']);

    simpleServer.stdout.on('data', (data) => {
      console.log(`stdout: ${data}`);
    });

    simpleServer.stderr.on('data', (data) => {
      console.log(`stderr: ${data}`);
    });

    simpleServer.on('close', (code) => {
      console.log(`child process exited with code ${code}`);
    });

    gulper.stdout.on('data', (data) => {
      console.log(`stdout: ${data}`);
    });

    gulper.stderr.on('data', (data) => {
      console.log(`stderr: ${data}`);
    });

    gulper.on('close', (code) => {
      console.log(`child process exited with code ${code}`);
    });

有没有办法用不同的会话来做?

1 个答案:

答案 0 :(得分:2)

您不能单独运行它们。您必须使用Promise或NodeJS中的异步工具。