尝试启动自定义 systemd 服务时出现此错误。
netrender-slave.service:在执行生成 /usr/local/bin/netrender-slave.sh 的步骤失败:权限被拒绝
这里是/etc/systemd/system/netrender-slave.service
[Unit]
Description=Blender netrender slave manager
[Service]
ExecStart=/usr/local/bin/netrender-slave.sh start
ExecStop=/usr/local/bin/netrender-slave.sh stop
ExecReload=/usr/local/bin/netrender-slave.sh reload
Type=simple
[Install]
WantedBy=multi-user.target
在这个问题中,问题是脚本的权限,但netrender-slave.sh
似乎没问题:
~# ls -al /usr/local/bin
total 16
drwxr-xr-x 2 root root 4096 Dec 4 11:30 .
drwxr-xr-x 10 root root 4096 Apr 20 2016 ..
-rwxr-xr-x 1 root root 816 Dec 4 11:30 netrender-slave.sh
在这个问题中,问题是其中一个目录的权限不足,但所有这些/usr/local/bin
都与此类似:
drwxr-xr-x 2 root root 4096 Dec 4 11:30 .
drwxr-xr-x 10 root root 4096 Apr 20 2016 ..
...
但是,在同一问题的评论中,提供了以下内容:
ls
输出没有显示尾随. 在 UGO 权限之后drwxr-xr-x
- GNU ls 使用一个.
字符来指示具有 SELinux 安全上下文的文件,但没有其他替代访问方法。具有任何其他替代访问方法组合的文件用+
字符标记。
我不明白如何检查这是否是我的问题。
这是一个糟糕的方法,值得系统化的House of Horror。您可能认为您唯一的问题是脚本文件缺少解释器。它不是。您没有看到的更大的问题是包装 van Smoorenburg
rc
脚本,并在服务单元内完成完全不必要的可怜人的服务管理。这最终会导致作为守护进程的错误进程,并且无法正确管理事物。不要那样做。
您应该告诉它的开发人员,它的
-b
选项是一个令人困惑的文档。进一步阅读