![使用 x2go 远程连接到多个 Linux 操作系统发行版时,为什么会看到错误“stdin: is not a tty”?](https://linux22.com/image/80023/%E4%BD%BF%E7%94%A8%20x2go%20%E8%BF%9C%E7%A8%8B%E8%BF%9E%E6%8E%A5%E5%88%B0%E5%A4%9A%E4%B8%AA%20Linux%20%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E5%8F%91%E8%A1%8C%E7%89%88%E6%97%B6%EF%BC%8C%E4%B8%BA%E4%BB%80%E4%B9%88%E4%BC%9A%E7%9C%8B%E5%88%B0%E9%94%99%E8%AF%AF%E2%80%9Cstdin%3A%20is%20not%20a%20tty%E2%80%9D%EF%BC%9F.png)
stdin: is not a TTY
我可以看到,关于机器之间 SSH 终端连接的错误消息,已经提出并回答了几个问题。但是,我正在使用X2goserver
客户端将基于 Fedora 22 的客户端连接到服务器(当前测试 Ubuntu 14.04,但也使用过其他版本),并且在连接后看到相同的错误。
我查看了 SSH 配置文件并进行了与 TTY 和交互式控制台相关的更改,这些更改看起来可能对这种情况有所帮助,但事实并非如此。我现在也向开发团队提出了一个错误x2go
,并在 Ubuntu 论坛上提问,但到目前为止还没有得到回复。
我认为 X2go 的目的是确保传递正确的参数,以确保创建一个会话,该会话提供为远程计算机打开 GUI 的适当功能,所以我认为这可能是 X2go 的一个错误 - 但是,没有其他人抱怨同样的问题让我有不同的想法。
作为参考,我在基于 OpenVZ 的远程服务器上使用模板,并且X2go
在 Fedora 20 和 XFCE 上运行得很好 - 但我现在需要升级,因为 Fedora 20 不再受支持。
谢谢
答案1
我昨天和今天早上也有过这个。我发现了问题。
作为会话建立的一部分,x2go
似乎在实际呈现会话之前执行.bashrc
并完成。.bash_profile
我发现它.bash_profile
正在执行mesg y
以及另一个尝试使用从tty
变量返回的值(即TTY=`tty`
)的 shell 脚本。由于这些语句不是从终端内执行的,因此它们失败了。解决方案是将它们放入测试中,如下所示:
if `tty -s`
then
mesg y
TTY=`tty`
else`
TTY='not a tty'
fi
这修复了我无法连接到的所有网站。我怀疑最近的变化可能使这一点成为焦点,因为自从我上次成功连接x2go
以来这些网站没有发生变化。x2go