当我的笔记本电脑从睡眠状态恢复时,wifi 连接不会恢复,并且我每次都必须从sudo service network-manager restart
终端手动重新启动网络管理器。
我有一个可以做到这一点的脚本,但是它阻止了 PC 正确地从睡眠状态恢复,所以我不得不将其删除。
答案1
您应该能够在/etc/pm/sleep.d/
目录中创建一个脚本(或者,/lib/systemd/system-sleep/
如果您运行的是 15.10+,则应该是目录),该脚本在系统恢复时执行该重启命令。确保使该脚本可执行。
在上述目录中创建一个
network_restart
包含以下内容的文件:case "${1}" in resume|thaw) sudo service network-manager restart ;; esac
- 使文件可执行:
sudo chmod +x network_restart
答案2
对于systemd
Ubuntu 16.04,你还应该考虑“pre”(暂停)和“post”(恢复)参数,${1}
以便重新启动仅执行离开系统挂起状态后。
我还必须添加一个sleep
以便让网络扫描有足够的时间完成(我最好的猜测)。
$ sudo cat /lib/systemd/system-sleep/network-manager-restart
#!/bin/sh
set -e
if [ "$2" = "suspend" ] || [ "$2" = "hybrid-sleep" ]; then
case "$1" in
post) sleep 10 ; systemctl restart network-manager ;;
esac
fi
详细信息请阅读:https://www.freedesktop.org/software/systemd/man/systemd-suspend.service.html
在进入系统挂起和/或休眠状态之前,systemd-suspend.service(以及分别提到的其他单元)将运行 /usr/lib/systemd/system-sleep/ 中的所有可执行文件并向它们传递两个参数。第一个参数将是“pre”,第二个参数将是“suspend”、“hibernate”或“hybrid-sleep”,具体取决于所选的操作。离开系统挂起和/或休眠状态后,将立即运行相同的可执行文件,但第一个参数现在是“post”。此目录中的所有可执行文件都将并行执行,并且只有在所有可执行文件都完成后才会继续执行操作。