Eu encontrei um script uma vez (não me lembro onde tudo que eu tenho é meu bash_history).
Esta não é a solução, é uma solução alternativa. Eu sei que não é exatamente o que você pediu, mas pode ser útil.
Ele usa o microfone para detectar o silêncio.
Este é o meu script:
while :;
do
rec -t raw /dev/null rate 32k silence 1 0.1 4% 1 1.0 15%;
clementine -t;
sleep 1;
done
- O 1,0 representa o tempo de silêncio (1 segundo), altera para algo mais longo para garantir que não seja uma pausa de música.
- Os 15% representam o limiar de silêncio, usam valores menores para locais silenciosos, valores mais altos para locais barulhentos.
- clementine -t é o comando que eu uso para alternar o meu player de música state aka clementine, altere isso com o comando que você usa para reiniciar o openFM.
- sleep 1: faça um pequeno atraso para dar tempo às coisas.
Você pode ler mais aqui: link e aqui: Ende a gravação sox quando o silêncio for detectado
Você também pode jogar fazendo pings para um host que você sabe que sempre estará online até que ele falhe, e continue tentando mais pings até que funcione novamente. Neste ponto, você sabe que a conexão foi embora, mas está de volta, então você deve reiniciar o openFM. Isso pode ser feito com 2 loops dentro de um terceiro.
#!/bin/bash
while :;
do
while ping -c 1 8.8.8.8; # do we have connection?
do
sleep 5;
done
# the connection seems to be gone...
until ping -c 1 8.8.8.8; # do we have connection?
do
sleep 5;
done
# the connection seems to be back again...
# restart here your service
done
Note que -c 1 significa fazer apenas um ping (então nós o chamamos novamente). Não precisa ser o DNS do google para o qual você faz o ping, mude o tempo de espera como desejar.