启用的systemd服务未启动

Bok*_*Bok 8 systemd

我有两个 systemd 服务,一个是 Flask 应用程序,用于代理对 C 后端的调用。\n虽然 Flask 应用程序可以工作,但 C 程序不会在启动时启动。

\n

我的服务文件如下所示:

\n
[Unit]\nDescription=my backend\nAfter=multi-user.target\n\n[Service]\nUser=root\nExecStart=/home/root/camtool\nType=dbus\nBusName=com.camera\nRestart=always\nRestartSec=10\n
Run Code Online (Sandbox Code Playgroud)\n

我已经启用了这样的服务:\nsystemctl enable camtool.service

\n

如果我执行 a,该服务就会启动systemctl start camtool.service,但如果我重新启动设备,该服务就不会启动。

\n

输出systemctl status camtool

\n
\xe2\x97\x8f camtool.service - my backend\n     Loaded: loaded (/etc/systemd/system/camtool.service; enabled; vendor preset: disabled)\n     Active: inactive (dead)\n\n
Run Code Online (Sandbox Code Playgroud)\n

如果我检查journalctl,则没有条目。

\n
journalctl -u camtool\n-- Logs begin at Wed 2021-07-14 14:12:26 UTC, end at Wed 2021-07-14 14:16:26 UTC. --\n-- No entries --\n
Run Code Online (Sandbox Code Playgroud)\n

我不确定如何进一步调试它,因为似乎没有任何错误消息。\n我怎样才能继续找出程序没有启动的原因?有没有办法可以验证是否有人尝试过?

\n

C 程序使用 DBUS 公开 Flask 应用程序的函数,并通过套接字传输数据。

\n

Bok*_*Bok 8

看来我通过重新启用服务解决了问题。\n我做了很多更改来尝试修复该文件,但是当我禁用并重新启用时,我意识到符号链接位于错误的位置。

\n

通过禁用和启用此问题已修复。\n我建议在对有关目标的区域进行更改时禁用并重新启用。

\n

在我这样做之前,我添加了wantedby=multi-user.target.

\n

命令如下所示:

\n
root@system:~# systemctl disable camtool\nRemoved /etc/systemd/system/multi-user-target.service.wants/camtool.service.\nroot@system:~# systemctl enable camtool\nCreated symlink /etc/systemd/system/multi-user.target.wants/camtool.service \xe2\x86\x92 /etc/systemd/system/camtool.service.\n
Run Code Online (Sandbox Code Playgroud)\n

现在它随系统启动。

\n