linux Minecraft服务器在重新启动时未使用Screen和Crontab重新启动

dgjrabp2  于 2023-10-16  发布在  Linux
关注(0)|答案(1)|浏览(152)

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

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

crontab

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

重新启动在计划的时间发生,但服务器在5分钟后未在分离的屏幕中启动。屏幕是分离的,所以我没有看到我的代码的问题。

3bygqnnd

3bygqnnd1#

我最近遇到了同样的问题,起初我指定了jar文件的路径,因为显然crotab无法找到server.jar文件。
start.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

希望对你有帮助。

相关问题