Remotamente, faça o computador emitir um bipe no alto-falante embutido

25

Como posso fazer remotamente (SSH) meu Linux Computer Beep (alto-falante embutido, já que não há nenhum externo)? Eu tenho o Ubuntu 9.04 e posso instalar pacotes extras, se necessário. Isso seria bom para encontrar uma determinada caixa se você tiver mais de uma pessoa em pé e esqueceu qual IP é qual caixa.

    
por wsd 27.09.2009 / 18:30

8 respostas

19

Tente:

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

Você pode ter que carregar primeiro o módulo do kernel para o alto-falante interno (por exemplo, se o módulo estiver na lista negra do carregamento automático):

sudo modprobe pcspkr
    
por 27.09.2009 / 23:42
14

primeiro:

modprobe pcspkr

então soluções do tópico, como

ssh user@host
beep
    
por 07.12.2010 / 21:16
6

Da página do manual beep na minha máquina Ubuntu:

IOCTL WACKINESS

Some users will encounter a situation where beep dies with a complaint from ioctl(). The reason for this, as Peter Tirsek was nice enough to point out to me, stems from how the kernel handles beep’s attempt to poke at (for non-programmers: ioctl is a sort of catch-all function that lets you poke at things that have no other predefined poking-at mechanism) the tty, which is how it beeps. The short story is, the kernel checks that either:

  • you are the superuser

  • you own the current tty

What this means is that root can always make beep work (to the best of my knowledge!), and that any local user can make beep work, BUT a non-root remote user cannot use beep in it’s natural state.

Esta pode ser a razão pela qual o beep se recusa a trabalhar remotamente. Você pode verificar se esta é a causa raiz invocando ssh com a opção -t , o que força a alocação pseudo-tty.

Uma solução menos desejável seria criar um script de wrapper que executa o bipe e conceda estas permissões de raiz de script . Se a execução deste script sobre ssh produzir um sinal sonoro, você saberá que a questão é a falta de um terminal de controle.

    
por 27.09.2009 / 22:43
3

Basta digitar

ssh user@remote-machine
beep

Testado no Ubuntu Desktop 8.x, isso irá bipar no servidor remoto, mesmo que nenhuma sessão local naquele servidor esteja ativa (assim: mesmo se a tela de login do GNOME for mostrada no monitor conectado ao servidor). / p>

Dê uma olhada em

man beep

para mais detalhes. No Debian / Ubuntu, o pacote beep deve ser instalado e os alto-falantes não devem ser silenciados.

    
por 27.09.2009 / 19:49
3

Você pode usar:

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


Observe que o seguinte não funcionaria. Ele falha antes mesmo de solicitar a senha sudo porque o shell ( bash ) está fazendo o redirecionamento e esse shell ainda é executado como usuário normal, não como root :

ssh user@remote-machine
sudo echo -e '\a' > /dev/tty1
-bash: /dev/tty1: Permission denied
ls -la /dev/tty1
crw------- 1 root root 4, 1 2009-09-28 16:33 /dev/tty1
    
por 27.09.2009 / 18:33
3

Este comando fará o truque:

modprobe pcspkr; echo -e "\a" > /dev/console;
    
por 26.06.2012 / 01:36
0

Execute um comando remoto para a máquina remota:

rsh hostname /usr/bin/echo '\a'
or
ssh user@remotehost /usr/bin/echo '\a'

    
por 27.09.2009 / 21:39
0

Ou você pode simplesmente executar o seguinte uma vez:

chmod o+x 'which beep'

Isso permitirá que todos os usuários usem o executável do bipe, que provavelmente é seguro o suficiente na maioria dos casos.

    
por 29.10.2009 / 15:12

Tags