迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 操作系统 >

Linux 中错误 Mesg: Ttyname Failed: Inappropriate Ioctl for Device Error

作者:迹忆客 最近更新:2023/05/03 浏览次数:

在本文中,我们将学习如何解决Linux 中的错误 mesg: ttyname failed: Inappropriate ioctl for device。 我们将讨论导致此错误的一些原因并展示如何修复错误。

让我们从在 Linux 系统中导致此错误的原因开始。


mesg: ttyname failed: Inappropriate ioctl for device 的原因

在 Linux 中,这个错误是由于默认的 vagrant 配置 config.ssh.shellbash -l 交互导致的。 Vagrant SSH shell 命令是 bash -l。

这会提示 Vagrant 的内部 SSH shell 通信器。 在 Linux 中,Vagrant 以 root 身份运行命令,因此它将获取此 /root/.profile 路径。

/root/.profile 路径包含Linux 系统上的mesg n 命令。 此命令确保没有其他用户可以写入您的终端设备。

但是,当我们在 Vagrant 上运行命令时,并没有终端设备。 因此,mesg n 与其不兼容,从而导致错误。

我们可以在 Linux 中使用以下方法之一修复此错误。


在 Linux 系统上修改用户配置文件

我们可以通过修改 Linux 操作系统上的用户配置文件来解决此错误。 首先,我们需要使用以下终端命令打开配置文件。

$ /root/.profile

在此之后,我们需要替换 mesg n || tty -s && mesg n 为真。 此方法将起作用,因为仅当终端设备存在时才调用 mesg -n 命令。

因此,当我们现在运行该命令时,它将在非交互式登录 shell 上运行。 因此,系统将显示任何错误。


完全避免使用登录 Shell

此错误的另一个解决方案是完全避免使用登录 shell。 我们在 Vagrant 设置中将 config.ssh.shell 更改为没有 -l 标志的 Bash。

通过这样做,系统将不会在我们的 Linux 系统上显示错误。

我们希望您发现本文有助于理解如何修复错误消息:ttyname 失败:Linux 中设备的不适当的 ioctl。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便