我有一个座席服务(org.bluez.map_agent
)
[D-BUS Service]
Name=org.bluez.map_agent
Exec=echo "Hello"
SystemdService=bluetooth-map-agent.service
bluetooth-map-agent.service
[Unit]
Description=launch MAP agent.
[Service]
User=app
ExecStart=/usr/bin/map-agent
ExecStop=/usr/bin/killall map-agent
KillMode=process
[Install]
WantedBy=multi-user.target
但是当dbus
调用发生时,我的地图代理没有启动,可能是什么原因?
答案 0 :(得分:0)
当dbus创建所需的总线时,使您的服务由systemd自身启动。这可以使用以下服务文件来实现:
[Unit]
Description=launch MAP agent.
[Service]
Type=dbus
User=app
BusName=org.bluez.map_agent
ExecStart=/usr/bin/map-agent
ExecStop=/usr/bin/killall map-agent
KillMode=process
[Install]
WantedBy=multi-user.target
使用systemctl enable xyz.service
Systemd将等待总线名称在dbus上获取,然后才会激活服务。