我正在尝试使用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)
有人知道我可以如何更改权限,以便该服务可以读写服务器所在的文件夹吗?
答案 0 :(得分:0)
注意:没有堆栈跟踪详细信息,很难看到引发异常的原因。
以下是一些建议:
eula.txt
中是否存在/home/camiel/mc
?如果没有,请使用正确的内容创建它。system.properties
,eula.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