进一步阅读

进一步阅读

我在尝试启动自定义 systemd 服务时收到此错误。

netrender-slave.service:在步骤 EXEC 生成 /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 安全上下文的文件,但没有其他替代访问方法。具有任何其他备用访问方法组合的文件都标有一个+字符。

我不明白如何检查这是否是我的问题。

答案1

这是一个糟糕的做法,配得上 systemd 的恐怖屋。您可能认为唯一的问题是脚本文件缺少解释器。它不是。您没有看到的更大问题是 van Smoorenburgrc脚本的包装,其中包含完全不必要的穷人服务管理,在服务单元内。这最终导致错误的进程作为守护进程,并且无法正确管理事物。

不要那样做根本不

您应该告诉它的开发人员,它的-b选项是一个令人困惑的文档。

[单元]
描述=Blender netrender 从属管理器
文档=https://unix.stackexchange.com/a/408848/5132

[服务]
类型=简单
工作目录=/mnt/my-data
用户=ec2-用户
环境 = FLAGS =“simple_slave_eiptarget.blend --addons netrender -a -noaudio -nojoystick”
ExecStart=/mnt/my-data/blender-2.73a-linux-glibc211-x86_64/blender -b $FLAGS --enable-autoexec

[安装]
WantedBy=多用户.target

进一步阅读

相关内容