如何在一段时间没有活动后自动执行终端中的命令?

如何在一段时间没有活动后自动执行终端中的命令?

我一直在寻找一个选项或脚本,可以在终端空闲后(没有输入也没有输出)执行命令。

我发现最接近的方法是设置TMOUT=seconds变量,以便终端自动关闭。这可以直接完成,也可以将以下行添加到$HOME/.profile

我想要做的是,我的桌面上的 gnome 终端在 5 分钟未使用后自行重置或清除。

答案1

您可以在 cron 作业中使用 的输出w。请参阅行IDLE。这是自 shell 中最后一次击键以来的时间:

user@host:~# w
 20:29:12 up  4:04,  1 user,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    1.2.3.4          18:24    0.00s  0.23s  0.00s w
user@host:~# sleep 10 && w
 20:29:26 up  4:04,  1 user,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    1.2.3.4          18:24   10.00s  0.23s  0.00s w

因此,编写一个 cron 作业来读取此行,当数字超过 300(5 分钟)时执行您的命令。

相关内容