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
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.
primeiro:
modprobe pcspkr
então soluções do tópico, como
ssh user@host
beep
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.
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.
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
Este comando fará o truque:
modprobe pcspkr; echo -e "\a" > /dev/console;
Execute um comando remoto para a máquina remota:
rsh hostname /usr/bin/echo '\a'
or
ssh user@remotehost /usr/bin/echo '\a'
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.
Tags linux