Greetings,
I came across an issue with how the services agent works that makes it seriously impaired in Fedora 16 and above (systems that make heavy use of systemd).
The services agent supports two different "standards" on Linux: OCF and LSB. In the OCF case, it's executing OCF resource agents. That's all fine. In the LSB case, it's running scripts in /etc/init.d. Also keep in mind that there are two APIs in the services agent: Services and Resources. The Resources API is the more advanced version. The Services API is much simpler, and uses the code for the LSB standard under the hood.
For example, if you run this QMF API call:
Services::start("httpd")
that turns into running this command on the host:
# /etc/init.d/httpd start
Some work is needed here. Here is a first pass at what I think needs to be done.
1) Add a "systemd" standard to the Resources API.
I don't think we need to venture into adding any new API calls here. We should just make the existing API work.
2) Change the Services agent to use the systemd API if possible, and fall back to the LSB if systemd is not in use.
Comments welcome.
Thanks,