linux - 退出 ssh -tt session

标签 linux bash ssh terminal tty

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

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

注意伪终端 -tt开关。

我的问题是脚本运行完毕后 ssh session 没有结束。打字exit也不做任何事情。如何让它退出?

最佳答案

您缺少 exit 语句。

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

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

echo "Hello World..."

这不是:

echo "Hello World..."
exit 0

关于linux - 退出 ssh -tt session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42959153/

相关文章:

ssh - capistrano 3 设置了 ssh 端口,但 22 仍在使用

oracle - Oracle DB链接不起作用

linux - 使用 awk 从 2 个过滤文件中删除重复项

linux - grep:/proc/sysrq-trigger: 输入/输出错误

c - FUSE开放系统调用机制

linux - Sed 不能正常工作

Bash:如果目标在同一卷内则创建硬链接(hard link),否则复制

linux - 避免碰撞,如果复制文件

regex - 使用正则表达式和反向匹配,并将其通过管道传递给另一个命令

java - Android 和 JSch : SSH behind another SSH server