屏幕问题 - 运行 Minecraft 在一段时间内循环通过屏幕会话
Issues with Screen - Running Minecraft in a while loop through a screen session
今天早些时候,我更改了 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
由于在 Notepad++ 中编写脚本,我似乎在通过 ftp 传输时随机添加了 ^M。不过,它们并没有添加到代码的每个修订版中,所以这不是一个一致的事情。然而,他们从 运行 停止了 start.sh,却没有给出任何真正的原因。
作为对其他人的参考,在过去 48 小时以上的每日多次重启中,以下内容在 2 个不同的服务器上一直运行良好。希望其他人会发现这对 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
今天早些时候,我更改了 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
由于在 Notepad++ 中编写脚本,我似乎在通过 ftp 传输时随机添加了 ^M。不过,它们并没有添加到代码的每个修订版中,所以这不是一个一致的事情。然而,他们从 运行 停止了 start.sh,却没有给出任何真正的原因。
作为对其他人的参考,在过去 48 小时以上的每日多次重启中,以下内容在 2 个不同的服务器上一直运行良好。希望其他人会发现这对 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