我正在使用 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