Questão Definir a rede de modo a ligar / desligar o Wi-Fi quando o processo X é iniciado / interrompido (Linux)


Meu objetivo é definir (através de scripts / daemons / qualquer parte do software pode ajudar) a minha rede de laptop, de modo a ligar automaticamente quando eu iniciar o software X (por exemplo, Firefox), e desligar automaticamente uma vez que o software foi fechado / terminado.
(ainda mais ambicioso, configurando 2 softwares X e Y como switches, se possível)
Qualquer contribuição será muito apreciada!


2


origem


Maneira mais simples: escrever um script que envolva a chamada de X, ajuste a rede antes de chamá-la, monitore X para a finalização e ajuste a rede de volta. Chame script em vez de X. Não funciona se você planeja usar várias instâncias de X simultaneamente. Caso seja uma questão XY: Se você quiser dar ao Firefox um ambiente de rede diferente, você também pode chamá-lo dentro de um namespace de rede que está configurado corretamente. - dirkt
Muito obrigado @dirkt! Se você pudesse escrever um exemplo de código de script como resposta, isso seria para mim. Eu estou usando o elementary OS, então minha base é Ubuntu - ed0


Respostas:


Os comandos para parar e iniciar a rede são:

sudo /etc/init.d/networking { stop | start }
sudo nmcli { networking | radio } { on | off }

Ou apenas para uma interface de rede específica:

sudo ifdown ethX
sudo ifup ethX

O último pode ter um problema se o seu roteador não estiver /etc/sysconfig/network-scripts/route-ethX, então ele pode não ser completamente excluído / adicionado pelos scripts ifup / ifdown. Por exemplo, para excluir você também pode precisar usar:

route del default ethX

Após o lançamento do firefox, para esperar que ele termine, você pode usar o comando de espera com ou sem parâmetros.

Este é o script que funcionou para o cartaz:

nmcli radio wifi on
sleep 2
firefox
nmcli radio wifi off

O repouso é feito com o número de segundos a esperar antes que a rede se estabilize, testado empiricamente.

Você também deve garantir que a rede esteja desabilitada após a inicialização.


1



Muito obrigado! Fiz alguns ajustes no seu script e ele funciona exatamente como pretendido. Esse é o resultado final - ed0
rádio nmcli wifi on / sleep 2 / firefox / esperar firefox / rádio nmcli wifi desligado - ed0
Assim que você atualizar sua resposta, eu lhe darei os pontos de recompensa! - ed0
Feito conforme pedido. - harrymc
firefox não retorna até que esteja fechado, então você não precisa wait. além disso, wait: `firefox': not a pid or valid job spec. - guest-vm