Emette un segnale acustico da remoto sull'altoparlante incorporato


28

Come posso fare da remoto (SSH) il mio Linux Computer Beep (altoparlante incorporato, dato che non ce ne sono altri esterni)? Ho Ubuntu 9.04 e posso installare pacchetti extra se necessario. Questo sarebbe utile per trovare una determinata casella se ne hai più di una in giro e hai dimenticato quale IP è quale casella.


11
Spero che la tua domanda non sia proprio questa vignetta al lavoro: xkcd.com/530
Telemaco,


1
@CiroSantilli 新疆 改造 中心 六四 事件 法轮功 questa domanda è più antica di una di quelle.
domenica

@wsd Non ho implicato la duplicazione e l'attuale consenso è quello di chiudere per "qualità": meta.stackexchange.com/questions/147643/… Poiché la "qualità" non è misurabile, seguo solo i voti. ;-) Probabilmente si riduce a quale domanda ha colpito le migliori parole chiave di Google per principianti sul titolo.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件 il

@CiroSantilli 新疆 改造 中心 六四 事件 法轮功 grazie per il chiarimento :)
wsd

Risposte:


23

Provare:

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

Potrebbe essere necessario caricare prima il modulo del kernel per l'altoparlante incorporato (ad es. Se il modulo è stato inserito nella lista nera dal caricamento automatico):

sudo modprobe pcspkr

Funzionava mentre il comando beep non funzionava. Ho appena impostato questo per funzionare su una macchina dei colleghi. per me dentro seq 1 10000; do echo -e '\ a'> / dev / console; dormire 1; fatto
Nick Stinemates il

Non ha emesso alcun suono.
Nick Stinemates,

Funziona bene su CentOS / RHEL, non sono riuscito a trovare pacchetti di segnali acustici.
plasmid87,

@NickStinemates Assicurati di avere un altoparlante per PC sulla scheda madre
dykeag

Questa è la soluzione più semplice! Inoltre, mi dispiace per aver accettato solo 9 anni di ritardo.
domenica


6

Dalla pagina man del bip sulla mia macchina Ubuntu:

IOCTL WACKINESS

Alcuni utenti incontreranno una situazione in cui il segnale acustico si interrompe con un reclamo di ioctl (). La ragione di ciò, come Peter Tirsek è stato abbastanza gentile da indicarmi, deriva da come il kernel gestisce il tentativo di beep di colpire (per i non programmatori: ioctl è una sorta di funzione catch-all che ti consente di colpire cose che non ha altri meccanismi predefiniti di ricerca) il tty, che è il modo in cui emette un segnale acustico. La storia è che il kernel verifica che:

  • sei il superutente

  • possiedi l'attuale tty

Ciò significa che il root può sempre far funzionare il segnale acustico (per quanto ne so!) E che qualsiasi utente locale può far funzionare il segnale acustico, MA un utente remoto non root non può usare il segnale acustico nel suo stato naturale.

Questo potrebbe essere il motivo per cui il segnale acustico si rifiuta di lavorare in remoto. Puoi verificare se questa è la causa principale invocando ssh con l' opzione -t , che forza l'allocazione pseudo-tty.

Una soluzione meno desiderabile sarebbe quella di creare uno script wrapper che esegua un segnale acustico e concedere a questo script le autorizzazioni di root . Se l'esecuzione di questo script su ssh produce correttamente un segnale acustico, saprai che il problema è la mancanza di un terminale di controllo.


3

Basta digitare

ssh user@remote-machine
beep

Testato su Ubuntu Desktop 8.x, questo emetterà un segnale acustico sul server remoto, anche se nessuna sessione locale su quel server è attiva (quindi: anche se la schermata di login di GNOME è mostrata sul monitor collegato al server).

Dai un'occhiata a

man beep

per ulteriori dettagli. Su Debian / Ubuntu, il pacchetto di segnali acustici deve essere installato e gli altoparlanti non devono essere disattivati.


Mi chiedo perché hai scritto "gli altoparlanti non devono essere disattivati" . La mia scatola desktop Ubuntu non ha driver audio installati, e in effetti entrambi beepe le echoopzioni usano tutti i miei altoparlanti integrati. Sebbene man beepdichiari chiaramente "bip l'altoparlante del PC in vari modi" , non ho verificato cosa succede se uno ha i driver audio installati.
Arjan,

Almeno sul mio PC posso silenziare gli altoparlanti con il controllo del volume di gnome. E dal momento che non sopporto il segnale acustico, di solito lo faccio.
Kim,

Quindi, quindi beepnon utilizza l'altoparlante integrato sul tuo sistema? Oppure il controllo del volume (che è disabilitato sul mio Ubuntu box) controlla anche l'altoparlante incorporato? Potrebbe essere divertente vedere se le echosoluzioni si comportano diversamente da.
Arjan,

gnome-volume-control può essere usato per controllare l'altoparlante incorporato separatamente. Cosa intendi per disabili? Cosa succede quando si esegue gnome-volume-control da una riga di comando?
Kim,

Siamo spiacenti, ho appena cancellato l'installazione 10.8. Disabilitato come in: nessun driver audio installato, e quindi un segnale di stop sopra l'icona del suono nel menu GNOME.
Arjan,

3

Puoi usare:

utente ssh @ macchina remota
sudo sh -c "echo -e '\ a'> / dev / tty1"


Si noti che quanto segue non funzionerebbe. Non riesce nemmeno prima di richiedere la sudopassword perché la bashshell ( ) sta eseguendo il reindirizzamento e quella shell viene comunque eseguita come utente normale, non come root:

utente ssh @ macchina remota
sudo echo -e '\ a'> / dev / tty1
-bash: / dev / tty1: autorizzazione negata
ls -la / dev / tty1
crw ------- 1 radice radice 4, 1 2009-09-28 16:33 / dev / tty1

3

Questo comando farà il trucco:

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

0

Esegui un comando remoto sul computer remoto:

nome host rsh / usr / bin / echo '\ a'
o
utente ssh @ remotehost / usr / bin / echo '\ a'


Non sarebbe necessario il reindirizzamento verso un terminale remoto come suggerito Thomas, per far emettere un segnale acustico al server remoto, piuttosto che al client SSH locale?
Arjan,

Si può anche fare: echo "\ a"> 'tty'.
harrymc,

echo -e "\a" > /dev/ttysicuramente emetterebbe un bip sul client SSH, non sull'altoparlante incorporato sul server :-) tty0, tty1e consolesembrerebbe funzionare, come mostrato in altre risposte.
Arjan,

0

In alternativa, è possibile eseguire semplicemente una volta:

chmod o + x `che beep`

Ciò consentirà a tutti gli utenti di utilizzare l'eseguibile del segnale acustico, che nella maggior parte dei casi è probabilmente abbastanza sicuro.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.