Удаленно заставить компьютер подавать звуковой сигнал на встроенный динамик


28

Как я могу удаленно (SSH) издать свой Linux Computer Beep (встроенный динамик, так как внешних нет)? У меня есть Ubuntu 9.04 и я могу установить дополнительные пакеты, если это будет необходимо. Это было бы хорошо для поиска определенного ящика, если у вас есть более одного стоящего рядом и забыли, какой IP какой ящик.


11
Я надеюсь, что ваш вопрос не совсем этот мультфильм на работе: xkcd.com/530
Telemachus


1
@CiroSantilli 新疆 改造 中心 六四 事件 法轮功 этот вопрос старше, чем любой из них.
августа

@wsd Я не имел в виду дубликат, и текущий консенсус заключается в том, чтобы закрыть его по «качеству»: meta.stackexchange.com/questions/147643/… Так как «качество» не поддается измерению, я просто говорю «против». ;-) Скорее всего, все сводится к тому, какой вопрос попал в список лучших ключевых слов Google для новичка.
Сиро Сантилли 新疆 改造 中心 法轮功 六四 事件

@CiroSantilli 新疆 改造 中心 六四 事件 法轮功 спасибо за разъяснения :)
августа

Ответы:


23

Пытаться:

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

Возможно, вам придется сначала загрузить модуль ядра для встроенного динамика (например, если модуль попал в черный список из-за автозагрузки):

sudo modprobe pcspkr

Это сработало, а звуковая команда - нет. Я просто установил это, чтобы работать на машине коллег. ибо я в seq 1 10000; do echo -e '\ a'> / dev / console; сон 1; сделано
Ник Stinemates

Не издал ни звука.
Ник Stinemates

Это хорошо работает на CentOS / RHEL, я не смог найти никаких звуковых пакетов.
plasmid87

@NickStinemates Убедитесь, что у вас есть системный динамик на материнской плате
dykeag

Это самое простое решение! Кроме того, извините за принятие только 9 лет с опозданием.
августа


6

Со страницы руководства по звуковым сигналам на моей машине с Ubuntu:

IOCTL WACKINESS

Некоторые пользователи сталкиваются с ситуацией, когда звуковой сигнал умирает с жалобой от ioctl (). Причина этого, поскольку Питер Тирсек был достаточно любезен, чтобы указать мне, связана с тем, как ядро ​​обрабатывает попытку звукового сигнала, на которую можно попытаться нажать (для непрограммистов: ioctl - это своего рода универсальная функция, которая позволяет вам делать то, что нет другого предопределенного механизма нажатия на tty, то есть, как он подает звуковой сигнал. Коротко говоря, ядро ​​проверяет, что либо:

  • ты суперпользователь

  • у вас есть текущий tty

Это означает, что root всегда может заставить работать звуковой сигнал (насколько мне известно!), И что любой локальный пользователь может заставить работать звуковой сигнал, НО удаленный пользователь без полномочий root не может использовать звуковой сигнал в своем естественном состоянии.

Это может быть причиной того, что звуковой сигнал отказывается работать удаленно. Вы можете проверить, является ли это основной причиной, вызвав ssh с опцией -t , которая вызывает псевдо-tty.

Менее желательным решением будет создание сценария-обертки, который выполняет звуковой сигнал, и предоставление корневым разрешениям для этого сценария . Если выполнение этого скрипта через ssh должным образом выдаст звуковой сигнал, вы будете знать, что проблема заключается в отсутствии управляющего терминала.


3

Просто введите

ssh user@remote-machine
beep

Протестировано на Ubuntu Desktop 8.x, оно будет издавать звуковой сигнал на удаленном сервере, даже если локальный сеанс на этом сервере не активен (таким образом: даже если на мониторе, подключенном к серверу, отображается экран входа в GNOME).

Посмотри на

man beep

Больше подробностей. В Debian / Ubuntu пакет звукового сигнала должен быть установлен, а динамики не должны быть отключены.


Интересно, почему вы написали: «Динамики не должны быть отключены» . В моем Ubuntu Desktop box не установлены звуковые драйверы, и в обоих случаях beepи во echoвсех опциях используется мой встроенный динамик. Несмотря на то, что man beepчетко звучит «подать звуковой сигнал на динамик ПК любым количеством способов» , я не проверил, что произойдет, если на компьютере установлены звуковые драйверы.
Арджан

По крайней мере, на моем компьютере я могу отключить звук с помощью регулятора громкости gnome. И так как я терпеть не могу, я обычно это делаю.
Ким,

Итак, beepне использует ли встроенный динамик в вашей системе? Или регулятор громкости (который отключен на моем Ubuntu box) также управляет встроенным динамиком? Может быть, интересно посмотреть, echoведут ли себя решения иначе, чем.
Арьян

Регулятор громкости gnome может использоваться для отдельного управления встроенным динамиком. Что вы имеете в виду под инвалидом? Что происходит, когда вы запускаете gnome-volume-control из командной строки?
Ким,

Извините, просто стерли с лица земли 10.8. Отключено как в: звуковые драйверы не установлены, и, следовательно, знак остановки в верхней части значка звука в меню GNOME.
Арьян

3

Вы можете использовать:

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

3

Эта команда сделает свое дело:

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

0

Запустите удаленную команду для удаленного компьютера:

rsh имя хоста / usr / bin / echo '\ a'
или
ssh user @ remotehost / usr / bin / echo '\ a'


Разве не нужно перенаправление на какой-нибудь удаленный терминал, как предложил Томас, чтобы подать звуковой сигнал удаленному серверу, а не локальному клиенту SSH?
Арджан

Можно также сделать: echo "\ a"> 'tty'.
Harrymc

echo -e "\a" > /dev/ttyОбязательно подаст звуковой сигнал на клиенте SSH, а не на встроенном динамике на сервере :-) tty0, tty1и, consoleпохоже, будет работать, как показано в других ответах.
Арьян

0

Или вы можете просто выполнить следующее один раз:

chmod o + x `который пищит`

Это позволит всем пользователям использовать исполняемый звуковой сигнал, который в большинстве случаев является достаточно безопасным.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.