几周后,我从 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 的替代方案以及它们进入的正确区域。
无论如何,任何帮助都是有用的, 谢谢!
User
应位于 [Service]
部分。
除了双吉斯坦的回复, 我认为以下提示可能有用,因为我面临类似的问题。
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 没有生成任何警告,并且规则已正确应用。
希望这会有所帮助。