如果没有活动用户则关闭服务器的脚本

如果没有活动用户则关闭服务器的脚本

我想编写一个 bash 脚本,该脚本将每 5 分钟使用 cron 运行一次,检查是否有任何活动用户登录,如果没有活动用户登录,它将关闭。我想出了这个:

#!/bin/bash                                                                                                                            
u=`users`;                                                                                                                             
l=${#u};                                                                                                                               
if [ $l -lt 2 ]                                                                                                                        
then                                                                                                                                   
        halt                                                                                                                           
fi  

并想知道这是否会做到这一点,或者users在最后一个断开连接后是否会返回一些意外的东西。

附加信息:

我意识到了另一件事:我刚刚在家里运行的系统上尝试了这一点Arch,我得到了以下结果:

[ron@osboxes ~]$ users
[ron@osboxes ~]$ who
[ron@osboxes ~]$

怎么会这样?很明显我是一个活跃的登录用户,不是吗?

答案1

这应该是一条评论,但我没有 50 个代表点,所以我会失去更多,将此评论发布为答案:)

如果您每五分钟运行一次此脚本,您的服务器可能会在您登录之前在启动时关闭。所以这不是一个好主意。写一个systemd定时器。

相关内容