代码之家  ›  专栏  ›  技术社区  ›  Shiv Deepak

如何确定正在运行的Linux机器是否空闲

  •  6
  • Shiv Deepak  · 技术社区  · 15 年前

    我有我的笔记本电脑,大部分时间连接到互联网,互联网的速度相当慢。当我下载一些大文件时,由于网速太慢,我无法浏览网站。我的计划是编写一个bash脚本并在cron作业中运行它,当它发现系统空闲时,它会自动启动一个进程(该进程将下载大文件,最好是wget),当我使用笔记本电脑时,该进程将被终止。类似于屏幕保护程序(我在 Scheduling in Linux: run a task when computer is idle (= no user input)

    空闲=无键盘、触摸板或鼠标点击。

    是否有某种方法可以以这种方式查找网络活动,例如,如果他们没有internet流量,则我的sript开始执行另一个wget脚本,如果我的浏览器请求网页,则它将停止执行该脚本。

    请给我建议一个合适的方法。。如果我使用空闲时间来实现它,如果我考虑使用网络流量,它将更加有效。

    2 回复  |  直到 9 年前
        1
  •  3
  •   HNJSlater    15 年前

    例如,在我当前的计算机上:

    sudo cat /dev/input/by-path/platform-i8042-serio-0-event-kbd
    

    如果我正在键入,则生成整个字节负载;如果我没有键入,则生成块(不输出任何内容)。类似的东西应该适用于鼠标,但在我的系统上似乎不起作用。

    默认情况下,输入设备的权限非常严格,您可能希望对其进行chgrp(例如)。我绝对不会让这样的东西作为根运行!请注意,在DE中使用权限有很多可能的安全隐患。如果它是共享框,我肯定不会考虑这个问题。

        2
  •  0
  •   Turbo J    15 年前

    我推荐一种更简单的方法: wget 它可能会消耗掉多少带宽,留下一些免费的用于上网。

    只需使用:

    wget --limit-rate=1.5k http://example.com