VPS信息:
套路云1G内存的小鸡
centos 64位
建完之后内存百分百,CPU使用率也会达到70%左右
创建教程:
查看是否有swap
free -m
如果不是很大,就删除重建
swapoff -a
新增swap分区
dd if=/dev/zero of=/root/swapfile bs=1M count=2048
mkswap /root/swapfile
swapon /root/swapfile
重启服务器reboot后查询
free -m
设置swap空间自动启动
编辑vi /etc/fstab
添加/root/swapfile swap swap defaults 0 0,保存文件之后,再次重启reboot
或者这么添加:
echo "/root/swapfile swap swap defaults 0 0" >> /etc/fstab
先装一些工具
yum install screen
yum install unzip
搞两个文件夹
cd terraria
mkdir exe downloads
下载服务器包
wget http://terraria.org/server/terraria-server-1353.zip
unzip terraria-server-1353.zip -d /root/terraria/exe
cd /root/terraria/exe/1353
cp -p Windows/serverconfig.txt /root/terraria/exe/1353/Linux
//这里要把配置文件serverconfig.txt拷贝到 TerrariaServer.exe的同一个目录
cd /root/terraria/exe/1353/Linux
//到这里需要配置一下文件
vi serverconfig.txt
//把世界名字和密码改一下
world=/root/terraria/Worlds/世界的名字.wld
autocreate=2
worldname=世界的名字
difficulty=0
maxplayers=4
password=设定一个密码
worldpath=/root/terraria/Worlds
下面是可用的配置文件命令表:
maxplayers=8 - 设置服务器的最大玩家数,数值必须介于1到255。
world=C:\Users\Defaults\My Documents\My Games\Terraria\Worlds\world1.wld - 加载一个世界并自动启动服务器。
port=7777 - 设置端口号,
password=p@55w0rd* - 设置服务器密码。
motd=Please don’t cut the purple trees! - 设置当日的消息。
worldpath=C:\Users\Defaults\My Documents\My Games\Terraria\Worlds\ - 设置世界文件的存储位置。
autocreate=3 - 如果没有在 -world 参数指定的路径找到世界,那么创建一个新世界。世界大小分为:1(小),2(中),3(大)。
difficulty=0 - 设置在使用 -autocreate 参数下的难度。可选项: 0(普通),1(专家)。
worldname=World - 当使用 -autocreate 参数时设定世界名称。
banlist=banlist.txt - 指定封禁名单文件的路径。默认情况下为工作路径下的banlist.txt文件。
secure=1 - 为服务器添加增强型作弊保护。
language - 通过语言码设置服务器语言。
给一开始建的文件夹加个权限
cd /root/terraria/exe/1353/Linux
最后启动一下试试
./TerrariaServer.bin.x86_64 -config serverconfig.txt
正常的话应该会创建世界(此处贼卡,可能会把ssh卡瘫痪,多等一会就好了),然后进入创建世界后的命令行
确认成功后退出服务器
exit
然后将配置文件某些项注释掉
# autocreate=2
# worldname=世界的名字
# difficulty=1
制作一个自动启动的脚本:
//新建个文本
vi T_server.sh
//把下面代码复制进去
USERNAME='root'
SCNAME='root'
TERA_VER='1353'
BIN_PATH="/root/terraria/exe/$TERA_VER/Linux/"
SERVICE='TerrariaServer.bin.x86_64'
CONFIG='/root/terraria/exe/1353/Linux/serverconfig.txt'
ME=‘root’
if [ $ME != $USERNAME ] ; then
echo "Please run the $USERNAME user."
exit
fi
start() {
if pgrep -u $USERNAME -f $SERVICE > /dev/null ; then
echo "$SERVICE is already running!"
exit
fi
echo "Starting $SERVICE..."
screen -AmdS $SCNAME $BIN_PATH$SERVICE -config $CONFIG
exit
}
stop() {
if pgrep -u $USERNAME -f $SERVICE > /dev/null ; then
echo "Stopping $SERVICE "
else
echo "$SERVICE is not running!"
exit
fi
screen -p 0 -S $SCNAME -X eval 'stuff "say SERVER SHUTTING DOWN IN 10 SECONDS. "\015'
sleep 10
screen -p 0 -S $SCNAME -X eval 'stuff "exit"\015'
exit
}
save() {
echo 'World data saving...'
screen -p 0 -S $SCNAME -X eval 'stuff "say World saveing..."\015'
screen -p 0 -S $SCNAME -X eval 'stuff "save"\015'
exit
}
status() {
if pgrep -u $USERNAME -f $SERVICE > /dev/null ; then
echo "$SERVICE is already running!"
exit
else
echo "$SERVICE is not running!"
exit
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
save)
save
;;
status)
status
;;
*)
echo $"Usage: $0 {start|stop|status|save}"
esac
服务器启动 /root/start.sh start
服务器停止 /root/start.sh stop
服务器重启 /root/start.sh restart
确认状态 /root/start.sh status
保存世界存档 /root/start.sh save
给该文件提升权限
chmod +x T_server.sh
之后执行脚本开启服务器
开了以后可以用screen -r ID回到“创建世界后的命令行”(ID可以用screen -ls查看)
最小化“创建世界后的命令行”可以用Ctrl + a + d来最小化(a、d要快速按,因为在xshell里这个是xshell的快捷键)