【发布时间】:2014-09-04 10:18:51
【问题描述】:
我想弄清楚,我们如何知道系统是否空闲?如果系统空闲 x 分钟,我想暂停系统。我试图找到这个并尝试了下面的脚本代码
#!/bin/bash
idletime=$((1000*60)) # 1 minute in milliseconds
while true; do
idle=`xprintidle`
echo $idle
if (( $idle > $idletime )); then
echo -n "mem" >> /sys/power/state
fi
sleep 1
done
但是 xprintidle 只监视鼠标和键盘活动以增加它的计数器。 现在如果我在无限循环中运行一个程序,那么它也会暂停系统。
另一个选项是在一段时间内从 /proc/stat 提取空闲时间,但在不同的系统上,如果我离开系统没有任何活动,我会看到不同的 cpu 空闲值范围。
谁能帮助我如何实现系统暂停。
【问题讨论】:
-
那么你可以监控系统空闲时的cpu使用范围是多少,为cron作业等留出余地,然后测试cpu使用是否保持在这个范围内,以及测试输入。这似乎使问题有点过于复杂了 imo
-
@limecore for sandeep 的问题 我认为监控 CPU 不是一个好主意。当有人输入文本时,CPU 变化很少(Tbh 也取决于文本编辑器)。在决定索引某些内容或发送报告等的应用程序数量内,仍被视为“空闲”。顺便说一句,帖子中的 topicstarter 在提到他已经尝试监视
/proc/stat时几乎是这么说的
标签: linux linux-kernel power-management