[systemd-devel] [RFC] activate on DBus signal
WaLyong Cho
walyong.cho at samsung.com
Mon Mar 23 01:54:02 PDT 2015
Hi,
Now, I'm looking for a method to a service be activated on special DBus
signal. If a process is running for waiting some of DBus signal this can
be useful.
I already told with Simon in DBus mailing list.
see this thread:
http://lists.freedesktop.org/archives/dbus/2015-March/016607.html
Simon said:
"If it did, there are some nasty ordering constraints - I certainly
wouldn't want to have to delay delivery of a broadcast until all
interested services had started up! - so I don't think adding this
feature would be a good idea."
How about also support for DBus signal?
My idea is...
Add new configuration directory. (e.g. "/etc/systemd/active-by-signal")
And service can install its configuration file on there with below
format. (Please don't care of its detail. It just a example.)
<signal>
<listen dest="org.freedesktop.DBus">
<listen interface="org.freedesktop.DBus.Properties">
<listen
object="/org/freedesktop/systemd1/unit/systemd_2dlogind_2eservice">
<listen member="PropertiesChanged">
</signal>
(I thought more appropriate .xml format better than .ini to define
multiple signal.)
Then, make systemd to monitor DBus. And if a matched signal was sent,
activate the service.
Until here, looks not much difficult. But the origin signal was already
sent. So if the service has its own bus then send a method call for
missed signal. Of course, the activated service has to handle those
method call.
This method can be seemed does not make sense. But I think, this
facility obviously useful.
Thank you in advance for comment.
WaLyong
More information about the systemd-devel
mailing list