我有一个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分钟后未在分离的屏幕中启动。屏幕是分离的,所以我没有看到我的代码的问题。
1条答案
按热度按时间3bygqnnd1#
我最近遇到了同样的问题,起初我指定了jar文件的路径,因为显然crotab无法找到server.jar文件。
start.sh
即使在此更改之后,脚本也无法正常工作(在执行server.jar之后,屏幕会话不断关闭),并且由于jar文件路径的相同原因,crontab获取server.jar并在其他地方执行服务器,因此无法找到eula.txt,导致终止屏幕会话。为了解决这个问题,我不得不首先让crontab使用'cd'命令访问目录,然后使用脚本执行jar文件。
crontab -e
希望对你有帮助。