Как заставить FirewallD и гибридный сон работать вместе?

У меня firewalld работает после ответа Firewalld не запускается при загрузке.

У меня гибридная работа в спящем режиме. Как использовать pm-suspend-hybrid по умолчанию вместо pm-suspend?

Однако, если firewalld активен, и я закрываю крышку, чтобы начать гибридный сон, то система зависает с черным экраном. Если я запускаю нормальный сон с помощью меню Power Cog> Suspend, то компьютер нормально останавливается. Я также могу перевести компьютер в гибридный режим, если я остановлю службу firewalld перед тем, как перевести компьютер в режим гибридного режима.

Мой компьютер работает под управлением Ubuntu 16.04.2 LTE с HWE.

У меня вопрос: как предотвратить конфликт между firewallD и гибридным сном?

Спасибо

1 ответ

Решение

Обновление от 23 апреля 2018 года: устранение основной причины решает эту проблему

Первопричина

Сервисный файл - /lib/systemd/system/firewalld.service говорит Firewalld конфликт с ebtables.service который включен по умолчанию в Ubuntu 16.04.

Решение

Отключить и замаскировать ebtables.service с помощью следующих двух команд:

sudo systemctl disable ebtables
sudo systemctl mask ebtables

Это решает проблему с FirewallD и гибридным сном, и связанная с этим проблема Firewalld не запускается при загрузке

Благодаря ответу Альфреда на вышеуказанный вопрос

Оригинальный ответ:

Стоп firewalld перед гибридным сном и начать его в резюме

Фон

Поместите файл сценария bash в /lib/systemd/system-sleep/, Непосредственно перед входом в систему приостановить, перевести в спящий или гибридный режим systemd-suspend.service (и соответствующие эквиваленты) запустит скрипт bash в /lib/systemd/system-sleep/ и передать им два аргумента. Первым аргументом будет pre, второй - suspend, hibernate или hybrid-sleep в зависимости от выбранного действия.

Сразу после выхода из системного приостановки, гибернации или гибридного сна запускается тот же сценарий bash, но первым аргументом является post.

Источник: https://www.freedesktop.org/software/systemd/man/systemd-suspend.service.html

Как это сделать:

Создайте текстовый файл: /lib/systemd/system-sleep/firewalld-sleep.sh со следующим содержанием:

#!/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

Сделайте файл исполняемым. См. /questions/660240/kak-sdelat-fajl-ispolnyaemyim для деталей.

Обратите внимание, скрипт останавливает firewalld перед любым из трех типов сна / гибридного / гибридного сна и запускает его снова при возобновлении.

Сейчас firewalld а также hybrid-sleep будет сосуществовать, и система не замерзнет, ​​если закрыть firewalld бежит.

Надеюсь это поможет

Другие вопросы по тегам