【发布时间】:2018-08-05 15:05:16
【问题描述】:
我正在尝试为我的孩子设置一个我的世界服务器,但屏幕让我很适应。我一直在关注this 教程,并且我已经咨询了this AskUbuntu 的答案。我在 Ubuntu 16.04.5 x64 上运行。我创建了以下服务文件并将其链接到 /etc/systemd/system/minecraft.service。
[Unit]
Description=Minecraft Server
Documentation=
Wants=network.target
After=network.target
[Service]
User=minecraft
Group=minecraft
Nice=5
EnvironmentFile=-/var/minecraft/unit.conf
KillMode=none
SuccessExitStatus=0 1
ProtectHome=true
ProtectSystem=full
PrivateDevices=true
NoNewPrivileges=true
PrivateTmp=true
InaccessibleDirectories=/root /sys /srv -/opt /media -/lost+found
ReadWriteDirectories=/var/minecraft/server /usr/bin/screen
WorkingDirectory=/var/minecraft/server
#ExecStartPre= /usr/bin/screen -dmS Minecraft
ExecStart= /usr/bin/screen -dm -S Minecraft '/usr/bin/java -Xmx1500M -Xms1024M -jar /var/minecraft/server/craftbukkit-1.13.jar'
ExecStop=/usr/bin/screen -S minecraft -p 0 -X stuff "stop^M"
[Install]
WantedBy=multi-user.target
当我监控服务启动时,我在 journalctl 日志中得到以下信息:
Aug 05 14:55:41 spigot-1 systemd[1]: Started Minecraft Server.
Aug 05 14:55:41 spigot-1 screen[9869]: No screen session found.
根据我引用的 SO 帖子,我已经更改了 /var/run/screen 中的权限。这是当前的设置:
root@spigot-1:/var/minecraft/server# ls -alR /var/run/screen/
/var/run/screen/:
total 0
drwxrwxrwx 4 root root 80 Aug 5 14:12 .
drwxr-xr-x 23 root root 860 Aug 5 14:11 ..
drwx------ 2 minecraft minecraft 40 Aug 5 14:55 S-minecraft
drwx------ 2 root root 40 Aug 5 14:50 S-root
/var/run/screen/S-minecraft:
total 0
drwx------ 2 minecraft minecraft 40 Aug 5 14:55 .
drwxrwxrwx 4 root root 80 Aug 5 14:12 ..
/var/run/screen/S-root:
total 0
drwx------ 2 root root 40 Aug 5 14:50 .
drwxrwxrwx 4 root root 80 Aug 5 14:12 ..
** 调试说明 ** 您会在其中看到注释的 ExecStartPre 命令...如果我尝试使用该命令启动屏幕会话,则会发生第二个“未找到屏幕会话”错误。
我可以使用“screen -dmS Minecraft [..]”从命令行启动服务器并重新连接。我可以以 root 和“我的世界”用户身份执行此操作。
任何帮助将不胜感激
【问题讨论】:
-
从票数接近的情况来看,您可能应该在 unix.stackexchange.com 上发布此内容,但无论如何请看我的回答。
-
你为什么使用
screen?您将在journal中找到程序输出。
标签: minecraft boot systemd gnu-screen