On Mo, 15.07.19 13:55, Salman Ahmed (salman.isd@xxxxxxxxx) wrote: > Hello, > I am trying to send a signal using sdbus but I am not able to see anything > on my dbus-monitor command: > dbus-monitor "type='signal',interface='test.signal.Type'" > > code: > sd_bus_error error = SD_BUS_ERROR_NULL; > sd_bus_message *m = NULL; > sd_bus *bus = NULL; > int r; > > r = sd_bus_open_user(&bus); > if (r < 0) { > fprintf(stderr, "Failed to connect to user bus: %s\n", strerror(-r)); > } > r= sd_bus_message_new_signal(bus, &m, "/test/signal/Object", > "test.signal.Type", "Test"); > if (r < 0) { > fprintf(stderr, "new signal failed: %s\n", strerror(-r)); > } > r = sd_bus_send(bus, m , NULL); > if (r < 0) { > fprintf(stderr, "bus send failed: %s\n", strerror(-r)); > } sd-bus is fully asynchronous, it never blocks. This means that it might not write the message to the socket yet when you just enqueue it, and you might need to flush things, for example via sd_bus_flush(). (or add the connection to an event loop so that the work can be done for you automatically, scheduled by the event loop) Lennart -- Lennart Poettering, Berlin _______________________________________________ systemd-devel mailing list systemd-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/systemd-devel