Meu laptop está conectado à internet apenas por wifi, mas ocasionalmente ele é desconectado. Quando isso acontece, não consigo ssh
entrar nele e preciso fazer login fisicamente para reconectar o wifi com nmcli
(não configurei nenhum gráfico).
Infelizmente, algumas teclas do teclado não respondem, sendo necessárias para o login do usuário e a senha do Wi-Fi.
Então configurei uma conta de usuário cujo nome usa apenas chaves que funcionam e cujo "shell" de login é um script para reconectar o wifi:
#!/usr/bin/bash
if /usr/bin/nmcli device wifi connect 'SSID' password 'PASSWORD'; then
echo "Connected as $(ip -json -4 address show wlp2s0 | jq -r '.[0].addr_info[0].local')"
else
echo 'Failed to connect to wifi'
fi
read -sN 1 -p 'Press any key to exit...'
wirec:x:970:969::/:/opt/wirec/wirec
Definitivamente não é uma ótima configuração, mas funciona enquanto espero um novo teclado chegar. Também descobri que NetworkManager
tem um recurso de reconexão automática, que é tudo o que eu realmente quero. Mas isso me fez pensar:
Em um caso geral, onde um programa está esperando uma entrada interativa sensível, e sem conectividade de rede, e não há teclado, é possível obter a entrada para o programa? Ou escrevê-la quando há rede para executar quando não há é tão bom quanto possível?