如果在一段时间内没有通过网络访问我的 Debian Wheezy 家庭服务器,我想让它进入睡眠状态。
我想到了一个 bash 脚本,它使用 netstat 来计算活动连接的数量,休眠几秒钟,再次运行 netstat,等等。
有没有更好的方法来实现这一点,而不需要每秒睡觉?有什么方法可以对“传入网络连接”事件做出反应并重置某种倒计时器?
答案1
正如您所做的那样,空闲网络检测通常使用 shell 脚本进行处理。简单的网络搜索“linux sleep networkidle”表明至少有 3 个容易找到的脚本可以解决此问题。
无论您复制现有脚本还是编写自己的脚本,都没有理由每秒运行它。您可以轻松创建一个 cron 作业,每 30 秒运行一次。大多数用户不希望服务器在闲置 5-15 分钟之前关闭,因此不需要每秒精度。有些用户每 20 分钟只运行一次脚本,这会导致机器平均在闲置后 30 分钟进入睡眠状态。