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


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.