我已经按照答案运行了防火墙Firewalld 未在启动时启动。
我有混合睡眠,工作如下如何默认使用 pm-suspend-hybrid 而不是 pm-suspend?
但是,如果防火墙处于活动状态,并且我关闭盖子以启动混合睡眠,则系统会冻结并显示黑屏。如果我通过以下方式启动正常睡眠power cog 菜单 > 暂停然后计算机就可以正常挂起。如果我在让计算机进入混合睡眠之前停止防火墙服务,我也可以让计算机进入混合睡眠。
我的电脑正在运行带有 HWE 的 Ubuntu 16.04.2 LTE。
我的问题是如何防止firewallD和hybrid-sleep之间的冲突?
谢谢
答案1
2018 年 4 月 23 日更新:修复根本原因可解决此问题
根本原因
服务文件 -表示与Ubuntu 16.04 中默认启用的/lib/systemd/system/firewalld.service
Firewalld 冲突。ebtables.service
解决方案
ebtables.service
使用以下两个命令禁用和屏蔽:
sudo systemctl disable ebtables
sudo systemctl mask ebtables
这解决了 FirewallD 和 hybrid-sleep 的问题 以及相关问题Firewalld 未在启动时启动
原始答案:
firewalld
在混合睡眠之前停止并在恢复时启动
背景
将 bash 脚本文件放入/lib/systemd/system-sleep/
。在进入系统挂起、休眠或混合睡眠之前,systemd-suspend.service
(以及相应的等效项)将运行 bash 脚本/lib/systemd/system-sleep/
并向其传递两个参数。第一个参数将是前,第二个暂停,休眠, 或者混合睡眠取决于所选择的动作。
离开系统挂起、休眠或混合睡眠状态后,会立即运行相同的 bash 脚本,但第一个参数现在是邮政。
来源: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
使文件可执行。请参阅http://askubuntu.com/questions/484718/how-to-make-a-file-executable了解详情。
请注意,脚本firewalld
在睡眠/休眠/混合睡眠三种类型中的任何一种之前停止,并在恢复时重新启动它。
现在firewalld
和将共存,并且如果在运行hybrid-sleep
时关闭盖子,系统将不会冻结。firewalld
希望这可以帮助