【问题标题】:ssh remote command does not returnssh 远程命令不返回
【发布时间】:2013-09-02 09:17:19
【问题描述】:

我正在运行 ssh somehost "service XXX restart" 并且 shell 挂起。

服务是nodeJS,我看到express is listening on port ... print 我在server.js 中制作的,就是这样,它不会返回提示,它只是挂起。

我尝试了 nohup 和 & 但它没有帮助。我还能尝试什么?

【问题讨论】:

    标签: ssh


    【解决方案1】:

    原来使用-t 解决了这个问题。

    ssh -t root@somehost "service XXX restart" 没有挂起。

    来自 cmets 的其他可能解决此问题的建议:

    • node myScript.js & disown
    • exec node myScript.js &

    【讨论】:

    • 这也会终止实际挂起您的命令的后端进程。
    • @AlanDuan 我多年来一直在网络服务上使用它。实际上仍在使用它..它工作正常..
    • 未来的读者可能想尝试node myScript.js & disownexec node myScript.js & 以便将自己与当前进程分离。查看更多信息here
    • 如果您在脚本中运行此 ssh,您可能需要将 -t 加倍,例如 ssh -tt root@somehost "command" 。这对我有用!
    【解决方案2】:

    使用ssh -t 不会挂起,但它也会终止远程进程。

    对我有用的只是在后台运行远程进程,如下所示:

    ssh somehost /path/to/some/script augment1 augment2 &
    

    【讨论】:

      猜你喜欢
      • 2014-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-16
      • 2011-05-27
      • 2018-04-21
      • 2018-03-03
      • 2015-03-29
      相关资源
      最近更新 更多