Ho un servizio per un processo che non desidero avviare al momento dell'avvio, ma per chiamarlo in qualche modo da un'altra applicazione già in esecuzione, in un dato momento.Avvia il servizio systemd dall'applicazione C/C++ o chiama un servizio D-Bus
L'altra opzione sarebbe quella di inserire un file di servizio D-Bus (sto usando glib dbus nelle mie app) in/usr/share/dbus-1/services e in qualche modo chiamarlo dalla mia applicazione. Inoltre, non riesco a farlo neanche io.
Diciamo che il mio servizio di file dbus da /usr/share/dbus-1/services
è com.callThis.service
e il mio servizio di file principale da /lib/systemd/system is com.startThis.service
Se eseguo una semplice introspect da linea di comando:
/home/root # dbus-send --session --type=method_call --print-reply \
--dest=com.callThis /com/callThis org.freedesktop.DBus.Introspectable.Introspect
il file del servizio D-Bus verrà chiamato e inizierà ciò che è in Exec (com.starThis). Il problema è che voglio ottenere questo dal codice C/C++ usando glib D-Bus.
Hai provato a implementarlo? Mostra alcuni primi passi che hai fatto. Un sacco di documentazione e anche un esempio possono essere trovati http://developer.gnome.org/gio/2.30/GDBusConnection.html – drahnr
http://www.freedesktop.org/wiki/Software/systemd/dbus/ Ecco le informazioni su API DBUS di 'systemd' –