用 systemd 管理游戏服务器进程

发布于Linuxsystemd运维

不用第三方面板,用 systemd 原生管理游戏服务器的启停和开机自启。

为什么用 systemd

很多人的游戏服务器还在用 screen + 手动启动。systemd 是 Linux 自带的进程管理器,开机自启、崩溃重启、日志收集全都有,不用额外装软件。

service 文件

/etc/systemd/system/ 下创建 mc.service

[Unit]
Description=Minecraft Server
After=network.target

[Service]
Type=simple
User=mc
WorkingDirectory=/opt/mc
ExecStart=/usr/bin/java -Xmx2G -jar server.jar nogui
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

常用命令

systemctl daemon-reload
systemctl start mc
systemctl enable mc     # 开机自启
systemctl status mc
journalctl -u mc -f     # 实时看日志

Restart=on-failureRestartSec=10 意味着进程异常退出后 10 秒自动拉起,比写守护脚本省心多了。