使用 x2go 远程连接到多个 Linux 操作系统发行版时,为什么会看到错误“stdin: is not a tty”?

使用 x2go 远程连接到多个 Linux 操作系统发行版时,为什么会看到错误“stdin: is not a tty”?

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

相关内容