内蔵スピーカーでコンピューターのビープ音をリモートで鳴らす


28

Linuxコンピューターのビープ音(外部スピーカーがないため、内蔵スピーカー)をリモート(SSH)で作成するにはどうすればよいですか?私はubuntu 9.04を持っていますが、必要に応じて追加のパッケージをインストールできます。これは、複数のIPが存在し、どのIPがどのボックスであるかを忘れた場合に、特定のボックスを見つけるのに役立ちます。


11
あなたの質問が実際にこの漫画ではないことを願っています:xkcd.com/530
Telemachus


1
@CiroSantilli新疆改造中心六四事件法轮功この質問はそれらのどれよりも古いです。
wsd

:私は重複を意味するものではありませんでしたし、現在のコンセンサスは、「品質」で閉じることです@wsd meta.stackexchange.com/questions/147643/...「品質」は測定できないので、私はちょうどupvotesで行きます。;-)おそらく、どの質問がタイトルで最高の初心者のGoogleキーワードにヒットしたかがわかります。
Ciro Santilli新疆改造中心法轮功六四事件

@CiroSantilli新疆改造中心六四事件法轮功説明してくれてありがとう:)
wsd

回答:


23

試してください:

sudo sh -c "echo -e '\a' > /dev/console"

最初に内蔵スピーカーのカーネルモジュールをロードする必要がある場合があります(たとえば、モジュールが自動ロードからブラックリストに登録されている場合)。

sudo modprobe pcspkr

これは機能しましたが、ビープコマンドは機能しませんでした。これを同僚のマシンで実行するように設定しました。for iでseq 1 10000; do echo -e '\ a'> / dev / console; 睡眠1; 完了
Nick Stinemates

音がしませんでした。
ニックスタインメイツ

これはCentOS / RHELでうまく機能し、ビープ音パッケージが見つかりませんでした。
プラスミド87

@NickStinematesマザーボードにPCスピーカーがあることを確認してください
-dykeag

これが最も簡単な解決策です!また、わずか9年遅れて受け入れて申し訳ありません。
wsd


6

Ubuntuマシンのビープ音のマニュアルページから:

IOCTL WACKINESS

一部のユーザーは、ioctl()からの苦情でビープ音が鳴る状況に遭遇します。この理由は、Peter Tirsekが私に指摘するのに十分良かったので、カーネルがビープ音を鳴らそうとする試みを処理する方法に由来します(非プログラマ向け:ioctlは、あらゆることを突き止めることができる一種のキャッチオール関数です事前定義された他のポークアットメカニズムはありません)tty(ビープ音の方法)。 要するに、カーネルは次のいずれかをチェックします。

  • あなたはスーパーユーザーです

  • あなたは現在の端末を所有しています

つまり、rootは常にビープ音を鳴らすことができ(私の知る限り)、ローカルユーザーはビープ音を鳴らすことができますが、非ルートリモートユーザーは自然な状態ではビープ音を使用できません。

これが、ビープ音がリモートで動作することを拒否する理由です。疑似tty割り当てを強制する-tオプションを使用してsshを呼び出すことにより、これが根本的な原因であるかどうかを確認できます。

あまり望ましくない解決策は、ビープ音を実行するラッパースクリプトを作成し、このスクリプトにルート権限付与することです。このスクリプトをsshで正しく実行するとビープ音が鳴る場合、問題は制御端末がないことです。


3

入力するだけ

ssh user@remote-machine
beep

Ubuntu Desktop 8.xでテストした場合、リモートサーバーでビープ音が鳴ります。たとえそのサーバー上のローカルセッションがアクティブでなくても(したがって、サーバーに接続されたモニターにGNOMEログイン画面が表示されていても)。

見て

man beep

詳細については。Debian / Ubuntuでは、ビープパッケージをインストールする必要があり、スピーカーをミュートしないでください。


「スピーカーをミュートしてはいけない」と書いたのはなぜだろうか。私のUbuntu デスクトップボックスにはサウンドドライバーがインストールされていません。実際、両方beepechoオプションはすべて内蔵スピーカーを使用しています。けれどもがman beep明確に述べ、「PCスピーカーにいくつかの方法をビープ音」を、私は1つのサウンドドライバがインストールされている場合は何が起こるか確認していません。
アルジャン

少なくとも私のPCでは、gnome-volume-controlでスピーカーをミュートできます。そして、私はビープ音に耐えられないので、私は通常します。
キム

それでは、beepシステムの内蔵スピーカーを使用しないのですか?または、ボリュームコントロール(Ubuntuボックスでは無効になっています)は、内蔵スピーカーも制御しますか?echoソリューションの動作が異なるかどうかを確認するのは楽しいかもしれません。
アルジャン

gnome-volume-controlを使用して、内蔵スピーカーを個別に制御できます。障害者とはどういう意味ですか?コマンドラインからgnome-volume-controlを実行するとどうなりますか?
キム

申し訳ありませんが、10.8インストールを削除しました。次のように無効になっています:サウンドドライバーがインストールされていないため、GNOMEメニューのサウンドアイコンの上に一時停止標識があります。
アルジャン

3

次を使用できます。

ssh user @ remote-machine
sudo sh -c "echo -e '\ a'> / dev / tty1"


以下は機能しないことに注意してください。sudobash)シェルがリダイレクトを実行しているため、パスワードの入力を求める前に失敗し、そのシェルは次のようにではなく通常のユーザーとして実行されます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

3

このコマンドはトリックを行います:

modprobe pcspkr; echo -e "\a" > /dev/console;

0

リモートマシンに対してリモートコマンドを実行します。

rshホスト名/ usr / bin / echo '\ a'
または
ssh user @ remotehost / usr / bin / echo '\ a'


ローカルのSSHクライアントではなく、リモートサーバーにビープ音を鳴らすために、Thomasが提案したようなリモート端末へのリダイレクトは必要ないでしょうか?
アルジャン

エコー "\ a"> 'tty'もできます。
harrymc

echo -e "\a" > /dev/tty確かに:-) SSHクライアント上ではなく、内蔵スピーカーのサーバー上にビープ音だろうtty0tty1console他の回答に示すように、仕事に思えます。
アルジャン

0

または、次のコマンドを1回実行するだけで済みます。

chmod o + x `どのビープ音`

これにより、すべてのユーザーがビープ音の実行可能ファイルを使用できるようになります。これは、ほとんどの場合、おそらく十分に安全です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.