我们一直sleepd
在使用 ubuntu 12.04,让公共桌面在 5-10 分钟不活动后暂停。我们计划部署 13.10(稍后将迁移到 14.04),并且发现该sleepd
软件包不见了。
是否有其他工具或系统范围的设置可以完成此工作?其他系统管理员如何解决此问题?
编辑:我们的宿舍里有 90 多名学生。有些学生拥有普通用户访问权限,有些学生仅使用访客帐户。当没有任何用户登录时,解决方案必须有效。
答案1
我没有测试过,可能错过了一步。
- 使用系统设置 → 电源 / 亮度。根据需要设置所有需要的设置
根据当前用户设置创建一个覆盖文件并将其放置在
/usr/share/glib-2.0/schemas/
echo "[org.gnome.settings-daemon.plugins.power]" > 90_mypower.gschema.override gsettings list-recursively org.gnome.settings-daemon.plugins.power | awk '{ gsub("org.gnome.settings-daemon.plugins.power ","") ; print $1"="$2 }' >> 90_mypower.gschema.override sudo mv 90_mypower.gschema.override /usr/share/glib-2.0/schemas/ sudo chown root:root /usr/share/glib-2.0/schemas/90_mypower.gschema.override sudo chmod +r /usr/share/glib-2.0/schemas/90_mypower.gschema.override
编译架构
sudo glib-compile-schemas /usr/share/glib-2.0/schemas
为所有密钥创建一个锁文件
org.gnome.settings-daemon.plugins.power
并将其放置在/etc/dconf/db/gdm.d/locks/
gsettings list-keys org.gnome.settings-daemon.plugins.power | xargs -L 1 -I{} echo /org/gnome/settings-daemon/plugins/power/{} > 90-mypower-locks sudo cp 90-mypower-locks /etc/dconf/db/gdm.d/locks/90-mypower-locks sudo chown root:root /etc/dconf/db/gdm.d/locks/90-mypower-locks sudo chmod +r /etc/dconf/db/gdm.d/locks/90-mypower-locks
锁具更新
sudo dconf update
当您寻找系统管理时,很高兴了解到:
关注
dconf
变化dconf watch /
从 GUI 更改电源设置,观察消息
- 打开
dconf-editor
,按照相同的路径,选择一个键 - 查看底部,它显示了其模式名称/ID:
org.gnome.settings-daemon.plugins.power
参考:
- dconf 系统管理员指南
- dconf-editor 和 gsettings 不应该访问同一个数据库吗?
- dconf 设置:默认和锁定
man gsetting
,man dconf
答案2
如果您坚持要安装 sleepd,本答案的底部提供了安装说明。但是,该软件包对于现代硬件来说已经过时了。
如果你要编写程序,可以考虑以下来源:
- 设备
/dev/input/
- 如果用户已登录,则依赖桌面会话管理器。其属性的描述如下:ubuntu 如何确定挂起之前不活动?
而不是使用sleep(3)
在代码中(如 sleepd 所做的那样),如果你使用poll(3)
或者select(3)
具有超时参数。(这假设设备/dev/input/*
是可轮询的,我不知道是否如此,但你应该查阅文档)
上游 (git 仓库)已经删除了默认的 hal 依赖项(犯罪),因此您可以尝试从源代码构建。以下命令在 Kubuntu 13.10 Live 环境中进行了测试。它安装构建依赖项,修复 Makefile 中阻止 HAL 被禁用的错误,最后创建一个 deb 包。
sudo apt-get install build-essential git debhelper libapm-dev
git clone git://git.kitenet.net/sleepd.git
cd sleepd
sed 's/ifdef USE_HAL/ifeq ($(USE_HAL), 1)/' -i Makefile
dpkg-buildpackage -b -us -uc
这会sleepd_2.05_amd64.deb
在父目录中生成一个包,然后您可以将其安装在机器上。此包需要有电池或 AC 接口(例如/sys/class/power_supply/*
),否则它将尝试 APM。由于现代机器不使用 APM,而是使用 ACPI,因此它将静默退出。
因此,虽然软件包可以顺利构建和安装,但如果尚未实现这样的功能,那么您最好编写一个新的守护进程。
答案3
系统设置下的电源设置是否缺失,因为在那里你可以以图形方式设置时间
正如您所看到的,如果您有这个(我相信您有),那么您可以修改它。