Как заставить 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
бежит.
Надеюсь это поможет