2012-11-07 21 views
2

如果我的机器空闲,我想关闭机器,并且正在寻找最可靠的“空闲”定义。它应该测量计算机(最终用户笔记本电脑还是台式机)是否正在执行有用的工作。值得注意的是,这里有一些事情,我想检查:检查一台linux机器是否空闲

  • 没有用户活动

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

    xprintidle似乎做了X一样,采用在X屏保扩展

  • 低负载平均

    uptime张平均负载

  • 没有运行下载

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

现在我的问题:

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

  2. 我们应该检查哪些其他活动以使其更可靠?开放的网络连接可能?还是不应该中断的进程白名单?我们能不能通过一些机器学习技术来学习什么是有用的工作的特征?

期待您的意见和建议!

+0

你可能已经忘记了用户程序的运行直通'crontab'或'at'。他们没有控制终端。但为什么你真的要问? –

+0

我问的原因是因为昨天晚上,我开始打造一份工作,然后上床睡觉。如果机器在构建结束时可以关闭,那本来就不错。然而,这个构建包含几个过程,有时候它会在等待网络时编译东西和时间......所以我想我会寻找更通用的解决方案。 – Sjlver

回答

0

直接的方法恕我直言,这是一个在Perlshell

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

这似乎和上面提到的xprintidle一样......这是我要求的一个更大的难题。 – Sjlver

+0

我的命令或xprintidle在crontab作业中是不够的吗? –

+0

好吧,不,就像我写的,X11空闲时间只是许多方面中的一个。如果我只根据这些信息关闭一台机器,我可能会中断一个重要的下载。 – Sjlver