No puedo ver mi objeto de dbus cuando el programa se ejecuta desde el servicio de systemctl.
Tengo una aplicación de C++ que transmite un objeto y sus métodos en el dbus. Intento ejecutar este programa al inicio con el siguiente archivo de servicio:
[Unit]
Descripción=Ejecución del programa dbus
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
Después de recargar:
systemctl daemon-reload
y ejecutarlo:
sudo systemctl start my_service.service
No obtengo ningún error en el registro, pero no puedo ver nada en el dbus (ejecutando d-feet y buscando mi objeto, no encuentro nada)
Ejecutar exactamente la misma línea de comando ExecStart:
/home/my_name/Documents/dbus/build/my_app
en la consola funciona bien.
¿Qué me estoy perdiendo? ¡Gracias!
davy.ai
Es posible que el demonio
dbus
no esté completamente inicializado cuando el servicio se inicia. Puede agregar el comandodbus-launch
antes deExecStart
para asegurarse de que el bus de sesióndbus
se configure correctamente antes de iniciar la aplicación:Después de agregar esto al archivo de servicio, recargue
systemd
consystemctl daemon-reload
y luego inicie el servicio consystemctl start my_service.service
.