2018 年 4 月 23 日更新:修复根本原因可解决此问题

2018 年 4 月 23 日更新:修复根本原因可解决此问题

我已经按照答案运行了防火墙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.serviceFirewalld 冲突。ebtables.service

解决方案

ebtables.service使用以下两个命令禁用和屏蔽:

sudo systemctl disable ebtables
sudo systemctl mask ebtables

这解决了 FirewallD 和 hybrid-sleep 的问题 以及相关问题Firewalld 未在启动时启动

谢谢alfred 对上述问题的回答

原始答案:

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

希望这可以帮助

相关内容