Script para reiniciar o Network Manager após retomar do sono

5

Quando meu laptop retoma a suspensão, a conexão wifi não é retomada e eu tenho que reiniciar manualmente o gerenciador de rede toda vez com sudo service network-manager restart do terminal.

Eu tinha um script que fazia isso, mas impedia que o PC voltasse corretamente do modo de suspensão, então tive que removê-lo.

    
por Alexander Paunovsky 03.05.2016 / 07:46

2 respostas

9

Você deve ser capaz de criar um script no diretório /etc/pm/sleep.d/ (ou, supostamente, o diretório /lib/systemd/system-sleep/ se estiver executando 15.10+), o qual executa o comando restart no reinício do sistema. Certifique-se de tornar esse script executável.

  1. Crie um arquivo network_restart no diretório com estes conteúdos:

    case "" in
      resume|thaw)
        sudo service network-manager restart
    ;;
    esac
    
  2. Torne o arquivo executável: sudo chmod +x network_restart
por dsomach 03.05.2016 / 10:04
6

Para systemd no Ubuntu 16.04 você também deve considerar o argumento "pre" (suspender) e "post" (resumir) em para que a reinicialização seja executada somente após a suspensão do sistema .

Eu também tive que adicionar um sleep para dar tempo suficiente para a verificação da rede ser concluída (meu melhor palpite).

$ sudo cat /lib/systemd/system-sleep/network-manager-restart 
#!/bin/sh
set -e

if [ "" = "suspend" ] || [ "" = "hybrid-sleep" ]; then
    case "" in
        post) sleep 10 ; systemctl restart network-manager ;;
    esac
fi

Para mais detalhes, leia: link

  

Imediatamente antes de entrar no sistema suspender e / ou hibernar   systemd-suspend.service (e as outras unidades mencionadas, respectivamente)   executará todos os executáveis em / usr / lib / systemd / system-sleep / e pass   dois argumentos para eles. O primeiro argumento será "pre", o segundo argumento   ou "suspender", "hibernar" ou "dormir híbrido" dependendo do   ação escolhida. Imediatamente depois de deixar o sistema suspender e / ou   hibernação os mesmos executáveis são executados, mas o primeiro argumento é   agora "post". Todos os executáveis neste diretório são executados   paralela, e a execução da ação não é continuada até que todos   executáveis terminaram.

    
por Lucas 02.11.2016 / 01:49