我正在使用循环来自动重新启动 Minecraft 服务器(如果它崩溃或停止)。这对于崩溃或计划重新启动非常有用,但是有时我们特别想要停止服务器而不是重新启动。
#!/bin/sh
while true
do
java ... args
sleep 5
done
理想情况下,我可以以某种方式告诉这个循环结束和将命令传递/stop
给我的世界服务器,这样我就不需要同时执行这两个操作。
我对 shell 脚本非常陌生,所以我不确定正确的方法。
Ubuntu 18.xx(如果有的话)。
答案1
我同意 Panki 的评论,听起来你最好将我的世界服务器作为服务运行。
基本上,您必须向“systemd”目录添加一些文件,这些文件使操作系统能够在您告诉它启动时保持进程运行,并在您告诉它停止时停止它。
有很多教程可以帮助您进行设置。例如:
详细的:https://linuxconfig.org/how-to-create-systemd-service-unit-in-linux
易于遵循:https://medium.com/@benmorel/creating-a-linux-service-with-systemd-611b5c8b91d6
为了保持它的“启动”状态,您应该将以下行添加到您的服务中:
Restart=always