首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试设置systemd服务时,继续获取“更改到请求的工作目录失败:权限被拒绝”。

尝试设置systemd服务时,继续获取“更改到请求的工作目录失败:权限被拒绝”。
EN

Ask Ubuntu用户
提问于 2022-07-20 04:35:59
回答 1查看 3.6K关注 0票数 1

我刚接触过Linux,4个月前刚从Windows转过来。我正在尝试使用教程安装一个“我的世界”服务器,当我试图通过systemd启动服务器并检查它的状态时,我一直得到它:

代码语言:javascript
复制
Loaded: loaded (/etc/systemd/system/minecraft.service; disabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Tue 2022-07-19 22:32:20 PDT; 6s ago
    Process: 21308 ExecStart=/usr/bin/java -Xmx1024M -Xms1024M -jar server.jar nogui (code=exited, status=200/CHDIR)
   Main PID: 21308 (code=exited, status=200/CHDIR)
        CPU: 14ms

Jul 19 22:32:20 myname-ThinkPad systemd[1]: Started Minecraft Server.
Jul 19 22:32:20 myname-ThinkPad systemd[21308]: minecraft.service: Changing to the requested working directory failed: Permission denied
Jul 19 22:32:20 myname-ThinkPad systemd[21308]: minecraft.service: Failed at step CHDIR spawning /usr/bin/java: Permission denied
Jul 19 22:32:20 myname-ThinkPad systemd[1]: minecraft.service: Main process exited, code=exited, status=200/CHDIR
Jul 19 22:32:20 myname-ThinkPad systemd[1]: minecraft.service: Failed with result 'exit-code'.

我确实在一些地方偏离了教程,我相信这就是问题所在。出于几个原因,我使用自己的用户配置文件来安装服务器,而不是单独安装服务器,但我确保相应地更改路径。我还必须安装Oracle,因为OpenJDK在安装服务器文件时遇到了问题(我使用的是1.19而不是本教程中链接的1.16 )。

以下是systemd文件:

代码语言:javascript
复制
[Unit]
Description=Minecraft Server
After=network.target

[Service]
User=myname
Nice=1
KillMode=none
SuccessExitStatus=0 1
ProtectHome=true
ProtectSystem=full
PrivateDevices=true
NoNewPrivileges=true
WorkingDirectory=/home/myname/mc_server/server
ExecStart=/usr/bin/java -Xmx1024M -Xms1024M -jar server.jar nogui
ExecStop=/home/myname/mc_server/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p serverpasswd stop

[Install]
WantedBy=multi-user.target

所以,我想我的问题是,有什么方法可以解决这个问题,而不需要制作单独的用户配置文件或返回到OpenJDK (扩展来说,是游戏的旧版本)?

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2022-07-20 21:31:59

问题在于您设置了ProtectHome=true,这限制了服务对/home的访问,但也希望将服务设置为cd/home。它不能这样做,因为它被设置为ProtectHome,因此它给出了您看到的错误:

代码语言:javascript
复制
Changing to the requested working directory failed: Permission denied

解决这一问题的办法是:

  1. 如本教程所述,将“我的世界”文件放在/opt中,或者
  2. 从服务文件中删除ProtectHome行,以便允许服务访问/home
票数 2
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1419541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档