メッセージ: Ttyname が失敗しました: Linux でのデバイス エラーの不適切な Ioctl

Abid Ullah 2023年6月20日
  1. Linux での mesg: ttyname failed: In不適切な ioctl for device エラーの原因
  2. Linux システムでユーザー プロファイルを変更する
  3. ログイン シェルを一緒に使用しない
メッセージ: Ttyname が失敗しました: Linux でのデバイス エラーの不適切な Ioctl

この記事では、Linux でのエラー mesg: ttyname failed: In不適切な ioctl for device を解決する方法を学びます。 このエラーの原因となるいくつかの理由について説明し、エラーを修正する方法を示します。

Linux システムでこのエラーが発生する原因から始めましょう。

Linux での mesg: ttyname failed: In不適切な ioctl for device エラーの原因

Linux では、このエラーは、デフォルトの vagrant 構成 config.ssh.shellbash -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 を修正する方法を理解するのに役立つことを願っています。

著者: Abid Ullah
Abid Ullah avatar Abid Ullah avatar

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

関連記事 - Linux Error