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/

相关文章:

php - 登录服务器的sftp脚本

python - Django 教程 : problems accessing development server

linux - 创建命令历史记录管道,如何摆脱 ack 传递的换行符?

bash - ssh无法在多个远程主机中运行脚本

ruby - 从Ruby Net::SSH session 获取输出

python - 使用 policykit+dbus 代替 gksu 运行图形应用程序

linux - Ubuntu 上的 SCALA_HOME 在哪里?

linux - 运行简单 shell 脚本时出错

macos - 单击 growl 通知启动应用程序

bash - 使用 'sudo' 运行延迟命令