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/

相关文章:

linux - 每次显示时从两种模式之间获取文本

linux - 在 AWK 中运行命令

bash - 并行执行多个作业时指定 SLURM 资源

arrays - bash 脚本中 Cat 的替代方案?

python - paramiko 无法连接到 ssh 服务器

linux - Ubuntu 14.04 - 内核无法使用 make-kpkg 编译

c++ - 进程因 SIGABRT 信号处理程序而挂起

bash 中的正则表达式量词 --simple 与扩展匹配 {n} 次

linux - 如何使用该 Ubuntu 服务器自动/定期将文件从 FTP 服务器复制到不同的 Ubuntu 服务器?

git - 如何将 git clone 与 ssh 保护的 gitolite 服务器一起使用