【问题标题】:nodejs exec ssh hangsnodejs exec ssh挂起
【发布时间】:2022-01-15 06:41:59
【问题描述】:

我希望我的 nodejs 应用程序执行一行命令并退出。该命令用于在远程机器上创建远程端口转发。

const exec = require("child_process").exec;

let script = "ssh -i cert.pem ubuntu@ec2 -R 9000:localhost:22 -S /tmp/.ssh-ec2 -M -fN ssh-ec2";

exec(script, (error, stdout, stderr) => {
      console.debug(stdout);
});

节点测试.js

它挂在那里;但是如果我在终端中运行纯命令。

ssh -i cert.pem ubuntu@ec2 -R 9000:localhost:22 -S /tmp/.ssh-ec2 -M -fN ssh-ec2

它退出了。

我错过了什么?

【问题讨论】:

  • 嗨@ahlev,你解决了吗?
  • 在一个文件夹中发生了同样的事情,而在其他文件夹中,使用几乎相同的一个衬里脚本一切正常(唯一的区别是 rsync 的目标)。手动运行脚本也适用于这两个文件夹。

标签: node.js ssh


【解决方案1】:

我可以通过将"ignore" 传递给stdio config option provided by child_process 来开始工作,如下所示:

execSync(sshTunnelCommand, { stdio: 'ignore' });

根据他们阅读的文档中的行进行了尝试:

如果输出不会被消耗,请使用 { stdio: 'ignore' } 选项

【讨论】:

    猜你喜欢
    • 2023-04-11
    • 1970-01-01
    • 1970-01-01
    • 2012-03-21
    • 2012-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多