【发布时间】:2022-01-03 23:37:03
【问题描述】:
我有一个 cpp 应用程序,它在 dbus 上广播一个对象及其方法。我尝试在启动时使用以下服务文件运行该程序:
[Unit]
Description=Running dbus program
After=network.target
[Service]
Type=simple
ExecStart=/home/my_name/Documents/dbus/build/my_app
StandardOutput=console+journal
StandardError=console+journal
[Install]
WantedBy=multi-user.target
重新加载后:
systemctl daemon-reload
并运行它:
sudo systemctl start my_service.service
我在日志中没有错误,但我在 dbus 上看不到任何东西(运行 d-feet,浏览我的对象,我什么都找不到)
运行完全相同的 ExecStart:
/home/my_name/Documents/dbus/build/my_app
在控制台中工作正常。
我错过了什么?谢谢!
【问题讨论】:
-
输入
service my_service status会得到什么报告? -
@ukBaz 我知道我的服务已加载并处于活动状态(正在运行),并且我得到了我应该得到的正确打印输出。但还是什么都看不到。
-
假设您将服务发布到会话总线上是否正确?关于如何在正确的会话总线上获取服务的几个解决方案的链接:serverfault.com/a/906224 和 unix.stackexchange.com/a/83409
-
@ukBaz 感谢您的领导。事实上,我正在会话总线上运行它。好吧,你分享的内容让我的理解更加复杂,我需要一些时间来消化它!
-
我知道我之前回答过
systemd和session bus...stackoverflow.com/a/69432686/7721752