首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Linux上检测计划任务中的不活动。

在Linux上检测计划任务中的不活动。
EN

Stack Overflow用户
提问于 2012-11-25 11:05:31
回答 2查看 719关注 0票数 2

我需要在我的Linux系统上检测到用户的不活动,以关闭它(相当无头的妻子,和相当昂贵的电费.-)。

我需要安排脚本(在crontab中),这样就不会有依赖X的工具工作了,我想(没有可用的$DISPLAY )。

有什么想法吗?

更新

对于“用户不活动”,我指的是用户输入不活动(鼠标和键盘)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-25 14:08:23

索托洛克可能是适合你的工具。它允许您指定一段时间的不活动时间,然后应该触发一个命令。

票数 2
EN

Stack Overflow用户

发布于 2012-11-25 15:33:59

您可以考虑检查屏幕保护程序运行了多长时间。

代码语言:javascript
复制
#!/bin/bash

screensaver="atlantis"

t=$(
    # check for the screensaver
    ps h -o start -C $screensaver          |\
    # hh:mm:ss -> seconds
    awk -F: '{print $1"*3600+"$2"*60+"$3}' |\
    bc -l  2>/dev/null  | sort -n | tail -1
)

if [ "$t" == "" ]
then
    exit 0
fi

n=$(
    date "+%T"                             |\
    awk -F: '{print $1"*3600+"$2"*60+"$3}' |\
    bc -l  2>/dev/null
)

runtime=$(( $n - $t ))

if [ $runtime -gt 3600 ] || [ $runtime -lt 0 ]
then
    echo shutdown -h now 
fi

使用时间值需要从现在开始减去以获得运行时。另外,在我的例子中,显示在处理表中的屏幕保护程序将根据选择的屏幕保护程序而有所不同。因此,上面的程序假设“亚特兰蒂斯”是当前的屏幕保护程序。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13550435

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档