关机脚本

关机脚本

我正在使用 Ubuntu 11.10。

我想编写一个 shell 脚本,如果一小时内无人登录则关闭计算机。

但是如果有人登录(本地或使用远程 SSH 连接),那么我不想关闭计算机。

如果有人能告诉我该如何应用该脚本,我将不胜感激。

非常感谢!

答案1

桌面环境将具有控制待机和休眠电源模式等的设置。这通常足以节省电力并让硬盘进入休眠状态。

但是,要回答您提出的问题,脚本可以轻松进行简单的检查。要守护此脚本稍微复杂一些,但这里有一个 Ruby 示例可以帮助您入门:

last_user = Time.now
loop do
  last_user = Time.now if `who | wc -l`.to_i > 0
  system 'sudo shutdown -P +2' if Time.now - last_user >= 60 * 60
  sleep 10
end

它不会总是检测到少于 10 秒的短暂登录......

在 bash 中这有点笨重,特别是在不使用&&for 的情况if下,但等效的功能如下:

last_user=`date +%s`
while :; do
  if [ `who | wc -l` -gt 0 ]; then
    last_user=`date +%s`
  fi
  if [ $((`date +%s` - $last_user)) -ge 3600 ]; then
    sudo shutdown -P +2
  fi
  sleep 10
done

相关内容