メッセージ: Ttyname が失敗しました: Linux でのデバイス エラーの不適切な Ioctl
-
Linux での
mesg: ttyname failed: In不適切な ioctl for device
エラーの原因 - Linux システムでユーザー プロファイルを変更する
- ログイン シェルを一緒に使用しない
この記事では、Linux でのエラー mesg: ttyname failed: In不適切な ioctl for device
を解決する方法を学びます。 このエラーの原因となるいくつかの理由について説明し、エラーを修正する方法を示します。
Linux システムでこのエラーが発生する原因から始めましょう。
Linux での mesg: ttyname failed: In不適切な ioctl for device
エラーの原因
Linux では、このエラーは、デフォルトの vagrant 構成 config.ssh.shell
と bash -l
の間の相互作用が原因で発生します。 Vagrant SSH
シェル コマンドは bash -l
です。
これにより、Vagrant の内部 SSH
シェル コミュニケーターが起動されます。 Linux では、Vagrant はルートとしてコマンドを実行するため、この /root/.profile
パスを取得します。
/root/.profile
パスには、Linux システムの mesg n
コマンドが含まれています。 このコマンドは、他のユーザーがあなたの端末デバイスに書き込めないようにします。
ただし、Vagrant でコマンドを実行する場合、端末デバイスはありません。 そのため、mesg n
はそれと互換性がなく、エラーが発生します。
Linux で次のいずれかの方法を使用して、このエラーを修正できます。
Linux システムでユーザー プロファイルを変更する
このエラーは、Linux オペレーティング システムのユーザー プロファイルを変更することで解決できます。 まず、次の端末コマンドを使用してプロファイルを開く必要があります。
$ /root/.profile
この後、mesg n || を置き換える必要があります。 true
with tty -s && mesg n
. mesg -n
コマンドは端末デバイスが存在する場合にのみ呼び出されるため、この方法は機能します。
そのため、ここでコマンドを実行すると、非対話型ログイン シェルで実行されます。 したがって、システムはエラーを表示します。
ログイン シェルを一緒に使用しない
このエラーの別の解決策は、ログイン シェルを完全に使用しないことです。 Vagrant 設定で -l
フラグなしで config.ssh.shell
を Bash に変更します。
これにより、システムは Linux システムでエラーを表示しなくなります。
この記事が、Linux のエラー mesg: ttyname failed: デバイスの不適切な ioctl
を修正する方法を理解するのに役立つことを願っています。
My name is Abid Ullah, and I am a software engineer. I love writing articles on programming, and my favorite topics are Python, PHP, JavaScript, and Linux. I tend to provide solutions to people in programming problems through my articles. I believe that I can bring a lot to you with my skills, experience, and qualification in technical writing.
LinkedIn