从C/C++应用程序启动systemd服务或调用D-Bus服务

Cum*_*tru 8 unix service dbus process systemd

我有一个.service用于一个我不想在启动时启动的进程,但是在给定的时间以某种方式从另一个已运行的应用程序调用它.

另一种选择是在/ usr/share/dbus-1/services中放置一个D-Bus(我在我的应用程序中使用glib dbus)服务文件,并以某种方式从我的应用程序中调用它.此外,我也无法做到这一点.

比方说,从我的DBUS服务文件/usr/share/dbus-1/servicescom.callThis.service 从我的主要服务文件/lib/systemd/system is com.startThis.service

如果我从命令行运行一个简单的内省:

/home/root # dbus-send --session --type=method_call --print-reply \
--dest=com.callThis  /com/callThis org.freedesktop.DBus.Introspectable.Introspect
Run Code Online (Sandbox Code Playgroud)

将调用D-Bus服务文件,它将启动Exec(com.starThis)中的内容.问题是我想使用D-Bus glib从C/C++代码实现这一点.