如何在深度睡眠唤醒时运行脚本?

如何在深度睡眠唤醒时运行脚本?

我在 XPS 15 9570 上运行 ubuntu 18.04。戴尔取消了正常睡眠模式,转而采用现代待机模式。这意味着当笔记本电脑放在我的背包里时,电池会耗尽,风扇也会运转。在 Windows 中,我能够让笔记本电脑进入混合睡眠状态,让 Ubuntu 进入深度睡眠状态。

我现在的问题是,从深度睡眠中醒来后,我的 wifi 已打开,但显示为问号,不允许我浏览互联网。我使用的是杀手级无线网卡,这是戴尔随这台笔记本电脑附带的。

我找到了一个解决办法

service network-manager restart

但是,我不想每次唤醒笔记本电脑时都手动运行这个。我尝试了其他解决方案,比如将脚本放入其中/lib/systemd/system-sleep/,但都不起作用。我怀疑这可能是由于我切换到深度睡眠,但我不是 100% 确定。

有人能帮助我在深度睡眠唤醒或用户登录时运行脚本吗?

答案1

您可以使用休眠后需要的 systemd 服务

将脚本文件放在已知位置/sbin/afterhibernate.sh
创建一个文件/etc/systemd/system/afterhibernate.service

[Unit]
Description=Run script on wakeup after hibernate
After=suspend.target hibernate.target hybrid-sleep.target

[Service]
ExecStart=/sbin/afterhibernate.sh

[Install]
WantedBy=suspend.target hibernate.target hybrid-sleep.target

如果您希望仅在休眠后执行它,请删除suspend.targethybrid-sleep.target

使用以下命令启用服务文件:

sudo systemctl enable afterhibernate.service

相关内容