当服务器上没有人时关闭计算机

Shutting down computer when no one is on servers

我 运行 我的塔上有多个 minecraft 服务器,我正试图在后台找出一个脚本 运行 来检查过去是否没有人在任何服务器上30 分钟,然后关闭服务器和计算机。然后,当有人想加入时,我将使用我的 raspberry pi 在 LAN 上唤醒。

我想出了如何使用 rcon 和局域网唤醒功能关闭服务器。我遇到的主要问题是弄清楚关机。我唯一能找到的是如何使用

检查某人是否在该特定 IP 上
lsof -iTCP:25565 -sTCP:ESTABLISHED

但我不知道从那里去哪里。我使用的是 Linux 机器,我对 bash 文件的大部分经验来自于设置服务器,仅此而已。您能提供的任何帮助将不胜感激!谢谢!

然后像这样:

#!/bin/bash

PORTLIST="25565 25566 25567"
TIMEOUT=3600

let T=0
declare -i START
declare -i NOW
START=$(date +%s)

while [ $T -lt $TIMEOUT ] ; do
   sleep 30
   for PORT in $PORTLIST ; do
      if lsof -iTCP:$PORT -sTCP:ESTABLISHED >/dev/null ; then
         T=0
         START=$(date +%s)
         # starting over
         continue 2
         fi
      done
   NOW=$(date +%s)
   let T=NOW-START
   done
echo timeout

PORTLIST 和 TIMEOUT 是唯一要更改的变量