Remotamente, bipe o computador no alto-falante embutido


28

Como posso remotamente (SSH) fazer meu bipe de computador Linux (alto-falante embutido, pois não existem externos)? Eu tenho o ubuntu 9.04 e posso instalar pacotes extras, se necessário. Seria bom encontrar uma determinada caixa se você tiver mais de uma por perto e esquecer qual IP é qual caixa.


11
Espero que a sua pergunta não é realmente este cartoon no trabalho: xkcd.com/530
Telêmaco


1
@CiroSantilli 法轮功 改造 中心 六四 事件 question esta questão é mais antiga que qualquer uma delas.
Wsd 22/10/19

@ wsd Eu não impliquei duplicado e o consenso atual é fechar por "qualidade": meta.stackexchange.com/questions/147643/… Como "qualidade" não é mensurável, eu apenas uso votos positivos . ;-) Provavelmente se resume a qual pergunta atingiu as melhores palavras-chave do Google para iniciantes no título.
Ciro Santilli # 23/18

@CiroSantilli 法轮功 改造 中心 六四 事件 法轮功 obrigado pelo esclarecimento :) #
wsd

Respostas:


23

Experimentar:

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

Pode ser necessário carregar o módulo do kernel do alto-falante embutido primeiro (por exemplo, se o módulo foi colocado na lista negra a partir do carregamento automático):

sudo modprobe pcspkr

Isso funcionou enquanto o comando de bipe não. Acabei de definir isso para rodar em uma máquina de colegas de trabalho. para eu dentro seq 1 10000; faça eco -e '\ a'> / dev / console; dormir 1; feito
Nick Stinemates 28/09/09

Não fez barulho.
Nick Stinemates

Isso funciona bem no CentOS / RHEL, não encontrei nenhum pacote de bipes.
plasmid87

@NickStinemates Verifique se você tem um alto-falante PC na placa-mãe
dykeag

Esta é a solução mais fácil! Além disso, desculpe-me por aceitar apenas 9 anos de atraso.
Wsd 22/10/19


6

Na página de manual do bipe na minha máquina Ubuntu:

IOCTL WACKINESS

Alguns usuários encontrarão uma situação em que o bipe morre com uma reclamação de ioctl (). A razão para isso, como Peter Tirsek foi bom o suficiente para apontar para mim, decorre de como o kernel lida com a tentativa do bipe de cutucar (para não programadores: ioctl é um tipo de função abrangente que permite cutucar coisas que não tem outro mecanismo predefinido de cutucar) o tty, que é como ele emite um sinal sonoro. A história resumida é que o kernel verifica se:

  • você é o superusuário

  • você possui o tty atual

O que isso significa é que o root sempre pode fazer o bipe funcionar (de acordo com o meu conhecimento!) E que qualquer usuário local pode fazer o bipe funcionar, MAS um usuário remoto não raiz não pode usá-lo em seu estado natural.

Essa pode ser a razão pela qual o sinal sonoro se recusa a trabalhar remotamente. Você pode verificar se essa é a causa raiz chamando ssh com a opção -t , que força a alocação de pseudo-tty.

Uma solução menos desejável seria criar um script de wrapper que execute o bipe e conceder permissões de raiz a esse script . Se a execução desse script pelo ssh produzir um sinal sonoro, você saberá que o problema é a falta de um terminal de controle.


3

Apenas digite

ssh user@remote-machine
beep

Testado no Ubuntu Desktop 8.x, ele emitirá um sinal sonoro no servidor remoto, mesmo que nenhuma sessão local nesse servidor esteja ativa (assim: mesmo que a tela de login do GNOME seja mostrada no monitor conectado ao servidor).

Dê uma olhada em

man beep

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


Eu me pergunto por que você escreveu "os alto-falantes não devem ser silenciados" . Minha caixa do Ubuntu Desktop não possui drivers de som instalados e, de fato, ambas beepas echoopções usam meu alto-falante embutido. Embora man beepafirme claramente "bipe o alto-falante do PC de várias maneiras" , não verifiquei o que acontece se houver drivers de som instalados.
23411 Arjan

Pelo menos no meu pc, posso silenciar os alto-falantes com o controle de volume do gnome. E como não suporto o sinal sonoro, costumo fazê-lo.
Kim

Então, então beepnão usa o alto-falante embutido no seu sistema? Ou o controle de volume (que está desativado na minha caixa do Ubuntu) também controla o alto-falante embutido? Pode ser divertido ver se as echosoluções se comportam de maneira diferente.
Arjan

O controle de volume do gnome pode ser usado para controlar o alto-falante embutido separadamente. O que você quer dizer com deficiente? O que acontece quando você executa o gnome-volume-control a partir de uma linha de comando?
Kim

Desculpe, acabou com a instalação do 10.8. Desativado como em: nenhum driver de som instalado e, portanto, um sinal de parada no topo do ícone de som no menu GNOME.
Arjan

3

Você pode usar:

usuário ssh @ máquina remota
sudo sh -c "echo -e '\ a'> / dev / tty1"


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

usuário ssh @ máquina remota
sudo echo -e '\ a'> / dev / tty1
-bash: / dev / tty1: permissão negada
ls -la / dev / tty1
crw ------- 1 raiz root 4, 1 28-09-2009 16:33 / dev / tty1

3

Este comando fará o truque:

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

0

Execute um comando remoto na máquina remota:

nome do host rsh / usr / bin / echo '\ a'
ou
usuário ssh @ remotehost / usr / bin / echo '\ a'


Não seria necessário o redirecionamento para algum terminal remoto, como Thomas sugeriu, para fazer o servidor remoto emitir um bipe, em vez do cliente SSH local?
22420 Arjan

Pode-se também fazer: echo "\ a"> 'tty'.
harrymc 28/09/09

echo -e "\a" > /dev/ttycertamente emitiria um sinal sonoro no cliente SSH, não no alto-falante embutido no servidor :-) tty0, tty1e consolepareceria funcionar, como mostrado em outras respostas.
Arjan

0

Ou você pode simplesmente executar o seguinte uma vez:

chmod o + x `qual bip`

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.