cfengine/masterfiles — pull request #233 by tzz (2014-05-06 20:53:15+00:00)
Title: Redmine#5650: split standard_services / classic_services to improve systemd, chkconfig, sysvservice, and Upstart support

Split:

* old `standard_services` becomes `classic_services`, but its `chkconfig` and `systemd` support is unused and may be removed with a followup commit
* new `standard_services` detects and uses, in order, systemd; chkconfig; sysvservice; `classic_services`
* much, much, much shorter code when we don't need to know all the services
* handle the `disable` state as needed
* with chkconfig, we don't run the init script if it doesn't exist (the xinetd services are like that)
* always run the right things to ensure the desired state, which means for instance we may be running init scripts or chkconfig unnecessarily. This can be optimized later but I believe it's the right approach fundamentally, since we're looking for idempotent convergent behavior.