在CentOS7 + Systemd中启动Minecraft服务器/自动启动/自动重新启动
首先
Minecraft服务器会突然崩溃对吗?
每次都要通过SSH重新登录并重新启动太烦人了!
您怎么将“デーモン化”翻译成中文?是屏幕吗?
还有更好的方法!
我将介绍一种能够轻松有效地运营Minecraft服务器的方法。
Systemd 是什么?
这次我们将使用Systemd来启动Minecraft服务器。
简单来说,Systemd是用于启动Linux的机制。
它可以实现守护进程、自动重新启动服务器、系统启动时自动启动,并可以记录日志等。
CentOS 7 已经可以使用了。
搭建Minecraft服务器
请参考这篇文章来搭建CentOS 7上的Minecraft服务器。
-
- IDCFクラウドでMinecraftサーバを構築しよう!
- さくらのVPSでminecraftマルチプレイヤサーバを構築 OSインストール
前提是在Minecraft用户的主目录下有一个jar文件,并且假设通过Minecraft用户启动服务器。
[minecraft@mctest ~]$ id
uid=1000(minecraft) gid=1000(minecraft) groups=1000(minecraft)
[minecraft@mctest ~]$ tree .
.
└── minecraft
├── minecraft_server.1.8.8.jar
└── minecraft_server.jar
1 directory, 2 files
创建启动脚本
请使用minecraft用户创建一个启动脚本,路径为/home/minecraft/minecraft/boot。
vi ~/minecraft/boot
脚本的内容如下所示。只有一行!可以通过环境变量指定堆内存的大小。
#!/bin/bash
java -Xms$XMS_SIZE -Xmx$XMX_SIZE -jar $HOME/minecraft/minecraft_server.jar nogui
最後,给予此脚本执行权限。
chmod +x ~/minecraft/boot
创建环境变量定义文件
请在/home/minecraft/minecraft/environments路径下创建一个文件来定义堆内存大小的环境变量。请使用minecraft用户进行操作。
vi ~/minecraft/environments
内容如下。非常易懂!
# ヒープメモリの初期サイズ
XMS_SIZE=1024M
# ヒープメモリの最大サイズ
XMX_SIZE=1024M
您可以通过更改此处来调整内存大小。
创建unit文件
最后创建一个名为Systemd的Unit文件。请使用root用户进行操作。
vi /etc/systemd/system/minecraft_server.service
内容会是这样的。
虽然不详细解释,但是因为很简单,我想您大致能明白。
Restart=always是一个选项,如果它崩溃了,会自动重新启动。
[Unit]
Description=Minecraft Server
After=network-online.target
[Service]
ExecStart=/bin/bash /home/minecraft/minecraft/boot
EnvironmentFile=/home/minecraft/minecraft/environments
WorkingDirectory=/home/minecraft/minecraft
Restart=always
User=minecraft
Group=minecraft
[Install]
WantedBy=multi-user.target
当您创建了文件,系统会从Systemd中读取该文件。
systemctl daemon-reload
启用自动启动选项,使得当操作系统启动时,Minecraft服务器也会随之启动。
systemctl enable minecraft_server
启动
马上要启动了!使用systemd可以通过以下命令进行启动。
systemctl start minecraft_server
你可以在下一个页面查看状态。
systemctl status minecraft_server
這樣的感覺
# systemctl status minecraft_server
minecraft_server.service - Minecraft Server
Loaded: loaded (/etc/systemd/system/minecraft_server.service; enabled)
Active: active (running) since 日 2015-09-13 15:24:38 JST; 1min 57s ago
Main PID: 1813 (bash)
CGroup: /system.slice/minecraft_server.service
├─1813 /bin/bash /home/minecraft/minecraft/boot
└─1814 java -Xms1024M -Xmx1024M -jar /home/minecraft/minecraft/minecraft_server.jar nogui
9月 13 15:24:43 mctest.cs429idcfcloud.internal bash[1813]: [15:24:43] [Server thread/INFO]: Starting minecraft server version 1.8.8
9月 13 15:24:43 mctest.cs429idcfcloud.internal bash[1813]: [15:24:43] [Server thread/INFO]: Loading properties
9月 13 15:24:43 mctest.cs429idcfcloud.internal bash[1813]: [15:24:43] [Server thread/INFO]: Default game type: SURVIVAL
9月 13 15:24:43 mctest.cs429idcfcloud.internal bash[1813]: [15:24:43] [Server thread/INFO]: Generating keypair
9月 13 15:24:43 mctest.cs429idcfcloud.internal bash[1813]: [15:24:43] [Server thread/INFO]: Starting Minecraft server on *:25565
9月 13 15:24:43 mctest.cs429idcfcloud.internal bash[1813]: [15:24:43] [Server thread/INFO]: Using epoll channel type
9月 13 15:24:43 mctest.cs429idcfcloud.internal bash[1813]: [15:24:43] [Server thread/INFO]: Preparing level "world"
9月 13 15:24:44 mctest.cs429idcfcloud.internal bash[1813]: [15:24:44] [Server thread/INFO]: Preparing start region for level 0
9月 13 15:24:45 mctest.cs429idcfcloud.internal bash[1813]: [15:24:45] [Server thread/INFO]: Preparing spawn area: 54%
当结束时,请使用以下命令。
systemctl stop minecraft_server
在最后
就这样吧!祝你度过愉快的Minecraft生活!