【问题标题】:Exiting ssh -tt session退出 ssh -tt 会话
【发布时间】:2017-08-15 00:14:48
【问题描述】:

我正在远程 ssh 主机上执行如下脚本:

ssh -tt $USER@somehost 'bash -s' < ./myscript.sh

注意伪 tty -tt 开关。

我的问题是脚本完成运行后 ssh 会话没有结束。键入exit 也没有任何作用。如何让它退出?

【问题讨论】:

  • 这个 ssh 会话是否会在远程系统上启动一个进程,该进程应该在 ssh 断开连接后继续运行?
  • @Kenster 最终,是的,但我目前正在使用一些简单的命令测试它,例如 pwd
  • edit 你的问题中包含一个产生问题的示例“myscript.sh”内容会很有帮助。
  • 当 bash 读取文件末尾时,它存在并且它会取消会话。如果你的脚本中有交互的东西在等待其他事件,你需要找到一种方法来杀死其他方式。

标签: linux bash ssh terminal tty


【解决方案1】:

在没有更多信息的情况下,即使按照问题中的方式执行,以下脚本也会在执行后正确退出。如果这不起作用,请提供一个不起作用的示例。

echo Hello World
pwd
exit

【讨论】:

    【解决方案2】:

    您缺少exit 声明。

    我怀疑exit 是必要的原因是因为当您强制分配pty 时,pty 期望输入是终端...从终端读取EOF 并不意味着'永远不会有更多的数据来',就像它对管道/文件所做的那样 - 它只是意味着'当前没有更多来自用户的输入' -因此挂起......它正在等待进一步的输入。

    此输入脚本 (myscript.sh) '挂起':

    echo "Hello World..."
    

    这不是:

    echo "Hello World..."
    exit 0
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-06
      • 1970-01-01
      • 2021-04-13
      • 1970-01-01
      相关资源
      最近更新 更多