Service systemd服务启动失败:没有服务安装单元
我编写了一个程序(节点js,在Raspberry Pi上),可以手动启动,但不能作为systemd服务:Service systemd服务启动失败:没有服务安装单元,service,systemd,Service,Systemd,我编写了一个程序(节点js,在Raspberry Pi上),可以手动启动,但不能作为systemd服务: pi@blueberry ~ $ systemd --version systemd 215 +PAM +AUDIT +SELINUX +IMA +SYSVINIT +LIBCRYPTSETUP +GCRYPT +ACL +XZ -SECCOMP -APPARMOR pi@blueberry ~ $ sudo systemctl daemon-reload pi@blueberry ~ $
pi@blueberry ~ $ systemd --version
systemd 215
+PAM +AUDIT +SELINUX +IMA +SYSVINIT +LIBCRYPTSETUP +GCRYPT +ACL +XZ -SECCOMP -APPARMOR
pi@blueberry ~ $ sudo systemctl daemon-reload
pi@blueberry ~ $ sudo systemctl start /etc/systemd/system/rfxtrx.service
Failed to start etc-systemd-system-rfxtrx.service.mount: Unit etc-systemd-system-rfxtrx.service.mount failed to load: No such file or directory.
pi@blueberry ~ $
错误消息抱怨没有rfxtrx.service.mount单元。对的应该有这样的单位吗?最常见的建议是重新加载守护进程;这没用。或者,这可能是systemd中的一个bug,该bug已修复,但仅在比raspbian版本更新的systemd版本中(raspbian的版本为215)
除了尝试更新到raspbian维护人员不支持的版本之外,还有其他解决方案吗?这里的第一个问题是,您正在运行以启动服务名称
rfxtrx.service
,但是systemd期望etc systemd system rfxtrx.service.mount
如果您试图进行systemd装载配置,则文件名应遵循以下规则:
装载单元必须以其所在的装载点目录命名
控制示例:装载点/home/lennart必须在中配置
单位文件home-lennart.mount
因此,如果您想在say/dir/to/rfxtrx
处创建一个装载点,那么systemd装载文件需要命名为dir to rfxtrx.mount
,建议它位于/usr/lib/systemd/system/
或/etc/systemd/system/
中,以后一个目录为准
如果您只是想要一个服务文件,则启用装置systemctl enable rfxtrx.service
<当装置已向systemd注册且需要重新加载时,使用代码>systemctl守护程序重新加载
您可以使用命令systemctl list units
或systemctl status rfxtrx.service
检查该服务是否与systemd一起存在
您的错误是您正在执行的是
sudo systemctl start/etc/systemd/system/rfxtrx.service
而不是sudo systemctl start rfxtrx.service
谢谢您的回答。你的最后一段解决了这个问题。你可以把重点放在最后一段上,最重要的部分是你不能使用完整的路径。