メッセージ: 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