Linux 中错误 Mesg: Ttyname Failed: Inappropriate Ioctl for Device Error
在本文中,我们将学习如何解决Linux 中的错误 mesg: ttyname failed: Inappropriate ioctl for device。 我们将讨论导致此错误的一些原因并展示如何修复错误。
让我们从在 Linux 系统中导致此错误的原因开始。
mesg: ttyname failed: Inappropriate ioctl for device 的原因
在 Linux 中,这个错误是由于默认的 vagrant 配置 config.ssh.shell 与 bash -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。
相关文章
在 Bash 中运行 find -exec 命令
发布时间:2024/03/14 浏览次数:127 分类:操作系统
-
本文将演示如何使用 find 命令的 -exec 参数来使用 find 命令定位文件中的任何文本。