systemd服务启动失败:没有service.mount单元

问题描述 投票:-1回答:1

我写了一个程序(在Raspberry Pi上的节点js),我可以手动启动,但不是作为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 ~ $ 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单元。正确。应该有这样的单位吗?最常见的建议是守护进程重装;这个没有帮助。或者根据https://github.com/systemd/systemd/issues/5375,这可能是systemd中的一个错误,它已被修复,但仅限于后来的系统版本而不是raspbian版本(raspbian有版本215)。

除了尝试更新到raspbian维护者不支持的版本之外,还有其他解决方案吗?

service systemd
1个回答
0
投票

那么这里的第一个问题是你正在运行以启动服务名称rfxtrx.service但是systemd期待etc-systemd-system-rfxtrx.service.mount

如果您尝试使用systemd挂载配置,则您的文件名应遵循以下规则:

必须以它们控制的安装点目录命名安装单元。示例:必须在单元文件home-lennart.mount中配置挂载点/ home / lennart。

因此,如果你想在/dir/to/rfxtrx上创建一个挂载点,那么systemd挂载文件需要命名为dir-to-rfxtrx.mount,并且建议它位于/usr/lib/systemd/system//etc/systemd/system/中,后者目录优先。

如果您只想拥有一个服务文件,那么启用单位systemctl enable rfxtrx.service。当单元已经在systemd注册并需要重新加载时使用systemctl daemon-reload

您可以使用命令systemctl list-unitssystemctl status rfxtrx.service检查systemd是否存在该服务。

你的错误是你正在做sudo systemctl start /etc/systemd/system/rfxtrx.service而不是sudo systemctl start rfxtrx.service

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