屏幕问题 - 通过屏幕会话在一段时间内运行Minecraft

时间:2015-05-14 09:15:04

标签: bash while-loop sh minecraft

所以今天早些时候,我改变了我的Minecraft服务器的启动脚本。问题是,大约3个小时后,打开它的屏幕消失了,并且在使用-ls时拒绝显示。服务器仍然在运行,从我在下面看到的情况来看,屏幕进程仍应处于活动状态? 在ServerStart.sh期间调用init。并且最初只包含while循环。

ServerStart.sh

#/bin/bash    
#Check to see if a minecraft screen is already running
lineCount=`screen -r mc | grep "There is no screen to be resumed matching mc." | wc -l`

#Start the minecraft server in a detached screen named "c" if its not running
#Launch the command line interface for minecraft if it is arealdy running.
if [ $lineCount -eq 1 ]
  then
    echo linecount: $lineCount. Starting in a deteched screen named minecraft. Use screen -r minecraft to view.
    screen -dmS mc sh ServerLoop.sh
  else
    echo lineCount: $lineCount. Minecraft is already running. Use screen -r minecraft to view. Running now.
    screen -r mc
fi

ServerLoop.sh

#/bin/bash
while true
do
java -server -Xms4096m -Xmx16384m -XX:PermSize=512m -d64 -XX:+UseParNewGC -XX:+CMSIncrementalPacing -XX:+CMSClassUnloadingEnabled -XX:ParallelGCThreads=2 -XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=10 -jar FTB.jar nogui
echo Restarting-Give me 90 Seconds.
sleep 10
done

1 个答案:

答案 0 :(得分:0)

由于在Notepad ++中编写脚本,我似乎在通过ftp进行传输时随机添加了^ M.虽然它们并没有被添加到每个代码版本中,所以它并不是一致的。然而,他们停止了start.sh的运行而没有给出任何关于原因的真实概念。

作为对其他人的参考,以下在过去的48小时+中,在两个不同的服务器上,每次重启多次都能正常工作。希望其他人可能会觉得这很有用,无论是Minecraft还是其他任何类似的任务。

ServerStart.sh

#/bin/bash screen -dmS infitech sh ./start.sh screen -r infitech

start.sh

#/bin/bash while true do java -Xms8192m -Xmx10240m -XX:PermSize=512m -jar server-1.7.10-1403.jar nogui -Dfml.queryResult=confirm echo "Feel Free to CTRL+C to stop the server" sleep 10 done