将Systemctl与Minecraft服务器服务一起使用时出现权限错误

时间:2019-02-09 21:56:27

标签: minecraft systemctl

我正在尝试使用systemctl运行Minecraft服务器。我的mcserver.service是以下内容:

[Unit]
Description=Minecraft Server
StartLimitIntervalSec=0
[Service]
Type=simple
User=camiel
Group=users
ExecStart=/usr/bin/java -Xmx1G -jar /home/camiel/mc/server.jar nogui


[Install]
WantedBy=multi-user.target

服务器目录为/ home / camiel / mc。尝试启动该服务时,它会显示通过sudo journalctl -xe看到的以下错误:

Feb 09 22:54:49 debian java[27867]: java.io.FileNotFoundException: eula.txt (Permission denied)

有人知道我可以如何更改权限,以便该服务可以读写服务器所在的文件夹吗?

3 个答案:

答案 0 :(得分:0)

注意:没有堆栈跟踪详细信息,很难看到引发异常的原因。

以下是一些建议:

  • 尝试从您的帐户在命令行上运行服务器,如果失败,则说明它的配置起作用。
  • 验证eula.txt中是否存在/home/camiel/mc?如果没有,请使用正确的内容创建它。
  • 您的所有文件(例如JAR,system.propertieseula.txt等)都属于同一个用户和组吗?使用cd /home/camiel/mc && ls -las确保用户和组保持一致。如果未使用,请在服务器目录的根目录使用chown -R camiel:users *
  • 使用以上命令,还检查权限位。目录应为drwxrwxr-x(775),文件应为-rw-rw-r--(664)。

答案 1 :(得分:0)

我认为您缺少WorkingDirectory中的[Service]语句。

您应该将WorkingDirectory=/home/camiel/mc放在这里。

答案 2 :(得分:0)

Eula.txt 是一个“最终用户许可协议”文件,它将阻止服务器运行,除非您已将其值更改为 true,这意味着您已同意此过程中的许可。

编辑文本文件。

nano /home/camiel/mc/eula.txt

将值“eula=false”更改为“eula=true”

#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula).
#Thu Feb 11 10:13:37 GMT 2021
eula=true

Ctrl-o 和 Enter 写入文件, Ctrl-x 退出

再次启动服务。

systemctl start minecraft.service

我建议在服务器运行时查看服务器日志文件以查看错误的实时状态。

tail -f /logs/latest.log