【问题标题】:how detect if node.js spawn need input?如何检测 node.js spawn 是否需要输入?
【发布时间】:2016-08-31 00:42:11
【问题描述】:

如果在不间断的等待中休眠,则检测生成进程的状态。通过 node.js 窗口。

// /proc/pid/status 中状态值的可能值
// R 运行,
// S 正在睡觉,
// D 在不间断的等待中休眠,
// Z 是僵尸(未运行但由进程所有者持有)
// T 被跟踪或停止

 var spawn = require("child_process").spawn;
 var sh = spawn("java", ["Test"]);

  sh.stdout.setEncoding("utf8");
  sh.stderr.setEncoding("utf8");
  sh.stdin.pipe(process.stdin);
  sh.stdout.on('data', function(data) {
      console.log(data);
      if () {//check if sh need input 
          sh.stdin.write("ddssd");
          sh.stdin.end();
      }
  });

  sh.on('exit', function(ecode) {
      console.log(ecode);
  });

  sh.stderr.on("data", (data) => {
      console.log(data);
  });

【问题讨论】:

    标签: node.js child-process spawn


    【解决方案1】:

    您不需要检测到这一点。如果它需要输入,您可以只写入标准输入,它会在需要时读取它——如果它能够像这样从标准输入读取。如果这不起作用,Java 程序可能认为它没有交互式终端。这种情况,你可以试试pty.js

    【讨论】:

      猜你喜欢
      • 2016-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多