我想编写一个 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定时器。