Execute o redshift assim que a internet estiver conectada

0

Eu tenho redshift instalado no meu laptop e configurei para executá-lo na inicialização. No entanto, requer uma conexão ativa com a Internet para ser executada. Mas o problema é que o meu ISP exige que eu faça o login antes de obter uma conexão ativa. Portanto, uma conexão não está disponível imediatamente após a inicialização e, portanto, o redshift não é executado.

Existe alguma maneira de executar redshift automaticamente assim que obtenho uma conexão ativa? Eu estou no KDE.

    
por Aniket Bhattacharyea 15.09.2016 / 20:36

1 resposta

0

Suponho que você esteja usando uma dessas redes nas quais você pode se conectar livremente, mas precisa passar por um serviço de autenticação da web antes de poder enviar solicitações em qualquer outro lugar.

A primeira solução que vem à mente é escrever um script de wrapper em torno de redshift e verificar se há uma conexão com a Internet regularmente, antes de iniciar o redshift . Tudo o que você precisa fazer depois disso é configurar esse script para ser executado no momento da inicialização, em vez de redshift em si. Aqui está um primeiro exemplo:

#!/bin/bash
while ! ping -qw1 -c1 8.8.8.8 >/dev/null 2>&1; do
    # As long as we can't ping Google's DNS, sleep.
    sleep 5
done

exec /path/to/redshift # We exited the loop, we can run redshift.

Agora com essa solução, ainda há uma chance de um falso positivo. Se os pacotes ICMP não forem bloqueados, mas redirecionados como o resto do tráfego (para o servidor de autenticação), você receberá uma resposta ECHO, mas não do destino correto ... Uma maneira fácil de corrigir isso é usar um HTTP em vez disso, e verifique o conteúdo da página caso estejamos sendo alimentados na página de autenticação.

#!/bin/bash
while ! wget -qO- http://example.com/ | grep -q Example; do
    sleep 5
done

exec /path/to/redshift

Qualquer solução que você escolher, não esqueça de tornar seu script executável:

$ chmod +x redshift_at_boot.sh

Então tudo que você precisa fazer é executar esse script em vez de redshift no momento da inicialização. Se você não precisa do redshift rodando como root, você pode agendar esse script a partir das Configurações do sistema do KDE> > Inicialização & desligamento > Autostart . Se isso requer privilégios de root, então descubra como agendar as coisas no momento da inicialização para sua distribuição. Outra possibilidade de usar o recurso do KDE seria adicionar gksudo ou pkexec após exec no script (supondo que você não se importe com o prompt da senha).

    
por 15.09.2016 / 21:29

Tags