Minecraft 服务器在重新启动时未通过 Screen 和 Crontab 重新启动

问题描述 投票:0回答:1

我有一个 Minecraft 服务器在运行 Ubuntu 22.04.2 LTS 的服务器上运行。我创建了一个使用 Screen 的启动脚本,在使用命令行运行时工作得很好,但在 crontab 中运行时不起作用。

开始.sh

#!/bin/sh
echo "starting..." > ~/mcserver/started.txt
screen -dmS Server java -Xmx2G -Xmx7G -jar server.jar nogui

定时任务

0 1 * * * reboot
@reboot 5 * * * * ~/mcserver/start.sh

在预定时间重新启动,但 5 分钟后在分离屏幕中服务器未启动。屏幕已分离,因此我的代码没有发现问题。

linux cron sh screen minecraft
1个回答
0
投票

我最近遇到了同样的问题,首先我指定了 jar 文件的路径,因为显然 crotab 无法找到 server.jar 文件。

开始.sh

screen -dmS Server java -Xmx2G -Xmx7G -jar /home/user/path/to/server.jar nogui

即使在此更改之后,脚本也无法正常工作(执行 server.jar 后屏幕会话不断关闭),并且出于与 jar 文件路径相同的原因,crontab 获取了 server.jar 并且它在其他地方执行服务器,因此它不可能找到 eula.txt,从而导致终止屏幕会话。要解决这个问题,我必须首先让 crontab 使用“cd”命令访问目录,然后使用脚本执行 jar 文件。

crontab -e

@reboot 5 * * * * cd /home/user/~/mcserver/ && /home/user/~/mcserver/start.sh

希望有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.