Systemd:“单元”部分中未知的左值“用户”

问题描述 投票:0回答:2

几周后,我从 Ubuntu 14.04 迁移到 16.04,发现我的 Upstart 脚本不再起作用,因此我感到很冒险,我设法创建了一个可以正常工作的 Systemd 脚本。

但我仍然有几个问题。

[/etc/systemd/system/ss13_server.service:3] Unknown lvalue 'User' in section 'Unit'

这是我的 Systemd 脚本:

[Unit]
Description=ss13_server
User=ss13
[Service]
WorkingDirectory=/home/ss13/ss13
ExecStart=/usr/local/byond/bin/DreamDaemon /home/ss13/ss13/baystation12.dmb 25565 -trusted
Restart=on-failure
RestartSec=90s

它的意思是运行命令

/usr/local/byond/bin/DreamDaemon /home/ss13/ss13/baystation12.dmb 25565 -trusted
作为用户
/home/ss13/ss13
ss13
内 如果进程终止,则重新运行该命令。

据我所知,除了错误之外,它做得很好

[/etc/systemd/system/ss13_server.service:3] Unknown lvalue 'User' in section 'Unit'

这让我怀疑它没有以正确的用户身份运行。

我使用了一个网站,其中显示了来自新贵的命令以及 systemd 的替代方案以及它们进入的正确区域。

无论如何,任何帮助都是有用的, 谢谢!

systemd ubuntu-16.04
2个回答
17
投票

User
应位于
[Service]
部分。


0
投票

除了双吉斯坦的回复, 我认为以下提示可能有用,因为我面临类似的问题。

udev 规则可以使用“udevadm test”命令进行调试。 就我而言,可以使用以下命令来识别以太网接口重命名操作: udevadm 测试 /sys/class/net/enp0s31f6

解析的配置文件/etc/systemd/network/02-boot.link /etc/systemd/network/01-oper.link:2:部分中未知的左值“驱动程序” “匹配”,忽略 /etc/systemd/network/01-oper.link:4:“链接”部分中未知的左值“名称”,忽略

查看https://man7.org/linux/man-pages/man5/systemd.link.5.html 我注意到链接文件中的部分和属性区分大小写。 我终于写了以下.link内容来解决这个问题:

[Match]
Driver=r8169
[Link]
Name=oper

重新测试 udevadm test /sys/class/net/enp0s31f6 没有生成任何警告,并且规则已正确应用。

希望这会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.