我有两个 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\nRun Code Online (Sandbox Code Playgroud)\n我已经启用了这样的服务:\nsystemctl enable camtool.service
如果我执行 a,该服务就会启动systemctl start camtool.service,但如果我重新启动设备,该服务就不会启动。
输出systemctl status camtool:
\xe2\x97\x8f camtool.service - my backend\n Loaded: loaded (/etc/systemd/system/camtool.service; enabled; vendor preset: disabled)\n Active: inactive (dead)\n\nRun Code Online (Sandbox Code Playgroud)\n如果我检查journalctl,则没有条目。
\njournalctl -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 --\nRun Code Online (Sandbox Code Playgroud)\n我不确定如何进一步调试它,因为似乎没有任何错误消息。\n我怎样才能继续找出程序没有启动的原因?有没有办法可以验证是否有人尝试过?
\nC 程序使用 DBUS 公开 Flask 应用程序的函数,并通过套接字传输数据。
\n看来我通过重新启用服务解决了问题。\n我做了很多更改来尝试修复该文件,但是当我禁用并重新启用时,我意识到符号链接位于错误的位置。
\n通过禁用和启用此问题已修复。\n我建议在对有关目标的区域进行更改时禁用并重新启用。
\n在我这样做之前,我添加了wantedby=multi-user.target.
命令如下所示:
\nroot@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.\nRun Code Online (Sandbox Code Playgroud)\n现在它随系统启动。
\n| 归档时间: |
|
| 查看次数: |
20034 次 |
| 最近记录: |