脚本如何检测用户的空闲时间?


33

我想在bash脚本中检查X会话的用户空闲了多长时间。

用户本人不必使用bash,而只需使用X。例如,如果用户只是移动鼠标,一个很好的答案是“空闲0秒”。如果他在5分钟内没有触摸计算机,那么一个很好的答案将是“闲置300秒”

不立即使用xautolock的原因是能够实现一些复杂的行为。例如,如果用户闲置10分钟,请尝试暂停;如果用户闲置5分钟以上,请关闭电源(我知道这听起来很奇怪,但暂停并不总是在这里起作用)。

Answers:


38

刚刚找到一种简单的方法来做到这一点。

有一个名为xprintidle的程序可以解决这个问题

获取空闲时间(以毫秒为单位)非常简单

xprintidle

并安装

apt-get install xprintidle

对于系统管理员,它也可以远程工作

ssh会话中

export DISPLAY=:0 && sudo -u john xprintidle

john是登录到远程计算机上的X会话的用户。


4

这里回答:

重击

w | tr -s " " | cut -d" " -f1,5 | tail -n+3

为您提供每个shell的用户名/空闲时间对。所以基本上您可以通过命令获取空闲信息w


这如何计算与非终端的X交互?例如,在Firefox内部进行鼠标移动。如果用户正在移动鼠标,我想获得答案“不闲置”或“空闲0秒”
josinalvo 2012年

@josinalvo w只是给您我认为该特定终端中的空闲时间。
2012年

3
空闲时间实际上是运行时间,即进程的正常运行时间(w输出的WHAT列)。因此,它不知道用户在X会话中空闲了多长时间。
rosch 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.