web-dev-qa-db-fra.com

Comment faire fonctionner FirewallD et sommeil hybride?

J'ai firewalld fonctionnant suivant la réponse Firewalld ne démarre pas au démarrage .

J'ai le sommeil hybride qui fonctionne après Comment puis-je utiliser pm-suspend-hybrid par défaut au lieu de pm-suspend?

Cependant, si firewalld est actif et que je ferme le couvercle pour lancer le sommeil hybride, le système se bloque avec un écran noir. Si j'initialise le sommeil normal via le menu du rouage d'alimentation> Suspendre , l'ordinateur se suspend bien. Je peux également mettre l'ordinateur en veille hybride si j'arrête le service firewalld avant de mettre l'ordinateur en veille hybride.

Mon ordinateur exécute Ubuntu 16.04.2 LTE avec HWE.

Ma question est de savoir comment empêcher le conflit entre firewallD et hybride-sommeil?

Merci

3
user68186

Mise à jour du 23 avril 2018: la résolution de la cause première résout ce problème

Cause racine

Le fichier de service - /lib/systemd/system/firewalld.service indique un conflit entre firewalld et ebtables.service qui est activé par défaut dans Ubuntu 16.04.

Solution

Désactiver et masquer ebtables.service avec les deux commandes suivantes:

Sudo systemctl disable ebtables
Sudo systemctl mask ebtables

Cela résout le problème avec FirewallD et hybride-sommeil et le problème associé de Firewalld ne démarre pas au démarrage

Merci à la réponse d'Alfred à la question ci-dessus

Réponse originale:

Arrêtez firewalld avant le sommeil hybride et démarrez-le à la reprise

Contexte

Placez un fichier de script bash dans /lib/systemd/system-sleep/. Immédiatement avant d'entrer dans le système, suspendre, mettre en veille prolongée ou dormir hybride le systemd-suspend.service (et leurs équivalents respectifs) exécutera le script bash dans /lib/systemd/system-sleep/ et leur passer deux arguments. Le premier argument sera pre , le second soit suspend , hibernate , ou hybride-sleep selon l'action choisie.

Immédiatement après avoir quitté le système en veille, en veille prolongée ou en veille hybride, le même script bash est exécuté, mais le premier argument est maintenant post .

Source: https://www.freedesktop.org/software/systemd/man/systemd-suspend.service.html

Comment faire:

Créez un fichier texte: /lib/systemd/system-sleep/firewalld-sleep.sh avec le contenu suivant:

#!/bin/bash
case $1/$2 in
    pre/*)
    # Disable firewalld before hybrid-sleep
    systemctl stop firewalld.service    
    ;;
    post/*)
    # Enable firewalld after hybrid-sleep
    systemctl start firewalld.service
    ;;
esac

Rendez le fichier exécutable. Voir http://askubuntu.com/questions/484718/how-to-make-a-file-executable pour plus de détails.

Remarque, le script arrête le firewalld avant l'un des trois types de sommeil/hybernate/hybride-sommeil et le redémarre à la reprise.

Maintenant firewalld et hybrid-sleep coexistera et le système ne gèlera pas si vous fermez le couvercle pendant que firewalld est en cours d'exécution.

J'espère que cela t'aides

3
user68186