【问题标题】:Checking whether a linux machine is idle检查linux机器是否空闲
【发布时间】:2012-11-07 01:22:38
【问题描述】:

如果我的机器处于空闲状态,我想关闭它,并且正在寻找“空闲”的最可靠定义。它应该衡量计算机(最终用户的笔记本电脑或台式机)是否正在执行有用的工作。值得注意的是,我想检查以下几点:

  • 没有用户活动

    w 命令打印终端会话的空闲时间

    xprintidle 似乎对 X 做同样的事情,使用 X 屏幕保护程序扩展

  • 低负载平均

    uptime 打印平均负载

  • 没有正在运行的下载

    bwm-ng 计算当前网络和磁盘使用情况

现在我的问题:

  1. 是否有任何现有的工具可以执行这些检查?

  2. 我们应该检查哪些其他活动以使其更可靠?打开网络连接可能吗?或者永远不应该被中断的进程白名单?我们能否使用一些机器学习技术以某种方式了解有用工作的特征?

期待您的意见和建议!

【问题讨论】:

  • 您可能忘记了通过crontabat 运行的用户程序。他们没有控制终端。但是你为什么要问???
  • 我问的原因是因为昨天晚上,我开始了构建工作,然后就去睡觉了。如果机器可以在构建结束时关闭,那就太好了。然而,构建包含多个进程,有时会编译内容,有时会等待网络……所以我想我会寻找更通用的解决方案。

标签: linux power-management


【解决方案1】:

恕我直言,直截了当的方法是 Perl 中的 shell

cpan -i X11::IdleTime # or any otherway to install X11::IdleTime module
sleep 2
perl -MX11::IdleTime -e 'print GetIdleTime(), $/;'

【讨论】:

  • 这似乎和上面提到的 xprintidle 一样......这是我要求的更大难题的一部分。
  • 我的命令或 xprintidle 在 crontab 作业中是否不够用?
  • 嗯,不...正如我所写,X11 空闲时间只是众多方面之一。如果我仅根据该信息关闭机器,我可能会中断重要的下载。
  • 我收到“无法在 @INC 中找到 X11/IdleTime.pm”消息。
猜你喜欢
  • 1970-01-01
  • 2011-02-16
  • 1970-01-01
  • 2011-11-27
  • 1970-01-01
  • 1970-01-01
  • 2011-03-01
  • 1970-01-01
  • 2018-08-19
相关资源
最近更新 更多