我有运行 Ubuntu 16.04 LTS 和 NextCloud/OwnCloud 的云存储数据中心,它们不需要 24/7 可用并且需要电源管理解决方案。服务器为 Dell PowerEdge 1950 Gen II 和 Dell PowerEdge 2950 Gen II
Hibernate 云存储服务器超过空闲时间(例如 20 分钟)并通过 WOL 进行这种解除休眠,以每年减少 6272.09 公斤的二氧化碳,仅从我们的数据中心就减少了 6680 千瓦,这些指标是通过详细的能源审计实现的。
风景
本地/cron 作业的环境仅提供计划的启动和关闭,因此对我们的可实现目标无效。
小睡
powernap 似乎是要走的路,但该服务未在 Ubuntu 16.04 上启动
XXXXXXX~$ sudo 服务 powernap 状态 ? powernap.service - PowerNap 加载:加载(/lib/systemd/system/powernap.service;禁用;供应商预设 活动:不活动(死)
powernap 似乎使用了折旧的服务,例如 Ubuntu 16.04 中不再可用的 network.service
局域网唤醒 (WOL)
按照此链接上的手动设置启用 WOL 非常简单。或使用电源唤醒
服务器休眠
到目前为止,我只能使用sudo systemctl hibernate
和sudo systemctl hibernate-sleep
自从从 14.10 升级到 15.04 以来,我用来为笔记本电脑设置适当的热配置文件模式的自定义脚本停止工作,我认为这是因为 pm-utils 不响应 AC/BAT 切换。
现在,如果这是系统的新预期行为,那么我现在应该把脚本放在哪里来完成这项工作(即使在交流电源上,我的笔记本电脑也需要正常运行)?
升级到 Ubuntu GNOME 15.04(从 14.10 开始)后,我注意到我的pm-utils
钩子在/etc/pm/sleep.d
挂起/恢复时不再运行。
我有一个自定义脚本,它在暂停前保存亮度并在恢复后恢复它。如果我手动运行sudo pm-suspend
钩子执行,但如果我关闭笔记本电脑的盖子(暂停 Ubuntu),则不会执行脚本。我错过了什么吗?
/etc/pm/sleep.d 中的亮度脚本是(适用于 14.04 和 14.10):
#!/bin/bash
case "$1" in
suspend|suspend_hybrid|hibernate)
cat /sys/class/backlight/acpi_video0/brightness > /tmp/.brightness_level
# modprobe -r nvidiabl
;;
resume|thaw)
# modprobe nvidiabl
cat /tmp/.brightness_level > /sys/class/backlight/acpi_video0/brightness
rm /tmp/.brightness_level
;;
esac
Run Code Online (Sandbox Code Playgroud) Ubuntu 20.04
我已经搜索了许多在从挂起状态恢复时执行脚本或命令的方法,并提出了几种不同的方法来执行此操作,例如此处描述的方法- 没有一种对我有用。
我发现的第一种方法是使用 pm-utils。显然,此方法已从 Ubuntu 中删除,从 15.04 左右开始
我发现的下一件事是使用systemd/system-sleep - 这对我也不起作用。我尝试在 /usr/lib/systemd/system-sleep 目录中创建一个脚本,还尝试了 /lib/systemd/system-sleep 目录(它显然链接到 /usr/lib/systemd/system-sleep 作为更改一个出现在另一个中)。我还尝试修改一个已经存在的脚本,称为 hdparm - 这也不起作用(我所做的修改是touch /tmp/xmodlog.log
但文件从未出现过)。
那么,有人能告诉我在恢复时运行脚本或命令的正确方法是什么吗?
感谢您的任何输入/建议/网站 - 特别是那些对沿途发生的事情有详细说明和解释的...
编辑:
根据Matigo 提供的答案,我执行了以下操作:
在 /etc/pm/sleep.d 中,我创建了一个名为 00xmodkey.sh 的脚本。我将以下脚本代码添加到此文件中,然后确保它归 root 所有,并且它具有执行权限。
脚本内容(尝试将 sh 和 bash 作为 shell):
#!/bin/sh
case "${1}" in
resume|thaw)
touch /tmp/xmodlog.log
echo "$(date) - lib testing" >> /tmp/xmodlog.log
;;
esac
Run Code Online (Sandbox Code Playgroud)
验证所有权和权限:
ls -l 00xmodkey.sh
-rwxr-xr-x 1 root root 257 Feb 4 22:49 …
Run Code Online (Sandbox Code Playgroud)