如何知道系统是否完全空闲

时间:2014-09-04 10:18:51

标签: linux linux-kernel power-management

我想知道,我们怎么知道系统是否闲置?我想暂停系统,如果它闲置了几分钟。我试图找到这个并尝试下面的脚本代码

#!/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 idle的不同值范围。

有人可以帮助我如何实施系统暂停。

1 个答案:

答案 0 :(得分:2)

东西可以随时发生。有些东西被cron拉开了。某人的sleep()调用结束,它会唤醒几毫秒。

我会说,想出一些有意义的启发式方法。例如,定期采样/ proc / loadavg,如果负载平均值保持低于某个阈值,则在给定的时间段内,假设系统现在处于空闲状态。