Linuxコンピューターのビープ音(外部スピーカーがないため、内蔵スピーカー)をリモート(SSH)で作成するにはどうすればよいですか?私はubuntu 9.04を持っていますが、必要に応じて追加のパッケージをインストールできます。これは、複数のIPが存在し、どのIPがどのボックスであるかを忘れた場合に、特定のボックスを見つけるのに役立ちます。
Linuxコンピューターのビープ音(外部スピーカーがないため、内蔵スピーカー)をリモート(SSH)で作成するにはどうすればよいですか?私はubuntu 9.04を持っていますが、必要に応じて追加のパッケージをインストールできます。これは、複数のIPが存在し、どのIPがどのボックスであるかを忘れた場合に、特定のボックスを見つけるのに役立ちます。
回答:
試してください:
sudo sh -c "echo -e '\a' > /dev/console"
最初に内蔵スピーカーのカーネルモジュールをロードする必要がある場合があります(たとえば、モジュールが自動ロードからブラックリストに登録されている場合)。
sudo modprobe pcspkr
seq 1 10000; do echo -e '\ a'> / dev / console; 睡眠1; 完了
最初:
modprobe pcspkr
次に、トピックからのソリューション、
ssh user@host
beep
sudo modprobe pcskr
Ubuntuマシンのビープ音のマニュアルページから:
IOCTL WACKINESS
一部のユーザーは、ioctl()からの苦情でビープ音が鳴る状況に遭遇します。この理由は、Peter Tirsekが私に指摘するのに十分良かったので、カーネルがビープ音を鳴らそうとする試みを処理する方法に由来します(非プログラマ向け:ioctlは、あらゆることを突き止めることができる一種のキャッチオール関数です事前定義された他のポークアットメカニズムはありません)tty(ビープ音の方法)。 要するに、カーネルは次のいずれかをチェックします。
あなたはスーパーユーザーです
あなたは現在の端末を所有しています
つまり、rootは常にビープ音を鳴らすことができ(私の知る限り)、ローカルユーザーはビープ音を鳴らすことができますが、非ルートリモートユーザーは自然な状態ではビープ音を使用できません。
これが、ビープ音がリモートで動作することを拒否する理由です。疑似tty割り当てを強制する-tオプションを使用してsshを呼び出すことにより、これが根本的な原因であるかどうかを確認できます。
あまり望ましくない解決策は、ビープ音を実行するラッパースクリプトを作成し、このスクリプトにルート権限を付与することです。このスクリプトをsshで正しく実行するとビープ音が鳴る場合、問題は制御端末がないことです。
入力するだけ
ssh user@remote-machine
beep
Ubuntu Desktop 8.xでテストした場合、リモートサーバーでビープ音が鳴ります。たとえそのサーバー上のローカルセッションがアクティブでなくても(したがって、サーバーに接続されたモニターにGNOMEログイン画面が表示されていても)。
見て
man beep
詳細については。Debian / Ubuntuでは、ビープパッケージをインストールする必要があり、スピーカーをミュートしないでください。
beepとechoオプションはすべて内蔵スピーカーを使用しています。けれどもがman beep明確に述べ、「PCスピーカーにいくつかの方法をビープ音」を、私は1つのサウンドドライバがインストールされている場合は何が起こるか確認していません。
beepシステムの内蔵スピーカーを使用しないのですか?または、ボリュームコントロール(Ubuntuボックスでは無効になっています)は、内蔵スピーカーも制御しますか?echoソリューションの動作が異なるかどうかを確認するのは楽しいかもしれません。
次を使用できます。
ssh user @ remote-machine sudo sh -c "echo -e '\ a'> / dev / tty1"
以下は機能しないことに注意してください。sudo(bash)シェルがリダイレクトを実行しているため、パスワードの入力を求める前に失敗し、そのシェルは次のようにではなく通常のユーザーとして実行されますroot。
ssh user @ remote-machine sudo echo -e '\ a'> / dev / tty1 -bash:/ dev / tty1:許可が拒否されました
ls -la / dev / tty1 crw ------- 1 root root 4、1 2009-09-28 16:33 / dev / tty1
リモートマシンに対してリモートコマンドを実行します。
rshホスト名/ usr / bin / echo '\ a'
または
ssh user @ remotehost / usr / bin / echo '\ a'
echo -e "\a" > /dev/tty確かに:-) SSHクライアント上ではなく、内蔵スピーカーのサーバー上にビープ音だろうtty0、tty1とconsole他の回答に示すように、仕事に思えます。