web-dev-qa-db-fra.com

Script permettant de redémarrer Network Manager après la reprise du mode veille

Lorsque mon ordinateur portable sort du mode veille, la connexion wifi ne reprend pas et je dois redémarrer manuellement le gestionnaire de réseau à chaque fois avec Sudo service network-manager restart à partir du terminal.

J'avais un script qui faisait ça, mais ça empêchait le PC de reprendre son sommeil, alors je devais le retirer.

7

Vous devriez pouvoir créer un script dans le répertoire /etc/pm/sleep.d/ (ou supposément dans le répertoire /lib/systemd/system-sleep/ si vous exécutez 15.10+) qui exécute cette commande de redémarrage lors de la reprise du système. Assurez-vous de rendre ce script exécutable.

  1. Créez un fichier network_restart dans ledit répertoire avec le contenu suivant:

    case "${1}" in
      resume|thaw)
        Sudo service network-manager restart
    ;;
    esac
    
  2. Rendre le fichier exécutable: Sudo chmod +x network_restart
10
dsomach

Pour systemd sur Ubuntu 16.04, vous devez également prendre en compte les arguments "pre" (suspend) et "post" (resume) dans ${1} afin que le redémarrage ne s’exécute que après avoir laissé suspendre le système .

J'ai également dû ajouter un sleep pour donner à l'analyse du réseau suffisamment de temps pour terminer (ma meilleure estimation).

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

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

Pour plus de détails, lisez: https://www.freedesktop.org/software/systemd/man/systemd-suspend.service.html

Immédiatement avant d'entrer dans le système, suspend et/ou en veille prolongée, systemd-suspend.service (et les autres unités mentionnées, respectivement) exécutera tous les exécutables dans/usr/lib/systemd/system-sleep/et leur transmettra deux arguments. Le premier argument sera "pre", le second soit "suspendre", "mettre en veille" ou "hybride-sommeil" en fonction de l'action choisie. Immédiatement après avoir quitté le système, suspendre et/ou mettre en veille prolongée les mêmes exécutables, mais le premier argument est maintenant "post". Tous les exécutables de ce répertoire sont exécutés en parallèle et l'exécution de l'action n'est pas poursuivie tant que tous les exécutables ne sont pas terminés.

6
Lucas