我对脚本编写的经验很少,但我想进入它。
基本上,这是针对 StarMade 服务器的,因为它的 java 进程不会在崩溃时关闭而是保持运行,因此很难正确检测到崩溃,而且这些崩溃非常频繁地发生。
不过,我想要的是在服务器日志文件中找到指示服务器已冻结/已崩溃的特定行,并在读取此行后终止进程,然后另一个脚本将再次启动它(已经获得了该部分)。日志文件不断被服务器更新,所以脚本基本上必须以某种方式“监视”文件。
我在任何地方都找不到与这个想法完全匹配的东西,但我试图从许多来源中收集一些东西,尽管我很确定这是完全错误的:
#!/bin/bash
cd "$(dirname "$0")"
if grep -Fxq "[SERVER] SERVER SHUTDOWN" log.txt.0
then
kill -9 $(pidof StarMade.jar)
else
false
fi
据我所知,这应该不断检查文件 log.txt.0 以找到与“[SERVER] SERVER SHUTDOWN”的直接匹配项,并在执行时终止服务器进程,或者在不执行时不执行任何操作,是这样吗一个正确的方法吗?我不想因为愚蠢的错误而破坏事情。