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

Bit*_*eak 2 linux bash users

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

#!/bin/bash                                                                                                                            
u=`users`;                                                                                                                             
l=${#u};                                                                                                                               
if [ $l -lt 2 ]                                                                                                                        
then                                                                                                                                   
        halt                                                                                                                           
fi  
Run Code Online (Sandbox Code Playgroud)

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

附加信息:

我意识到了其他事情:我刚刚在家里运行的系统上尝试了这个Arch,我得到了以下信息:

[ron@osboxes ~]$ users
[ron@osboxes ~]$ who
[ron@osboxes ~]$
Run Code Online (Sandbox Code Playgroud)

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

小智 6

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

如果您每五分钟运行一次此脚本,您的服务器可能会在启动时关闭,甚至还没有登录。所以不是一个好主意。编写一个系统定时器。