| I'm facing a very similar issue: my debian jessie system has two providers : systemd and runit. Runit exists since it's a dependency of a single application and by default I'd like to continue using systemd. Puppet client: 4.8.2 (from jessie-backports) Puppet server: 4.8.2-5 (puppetmaster-passenger) Client OS: Debian jessie 8.10 Steps to reproduce: 1. Install and configure puppet. Use a simple manifest with one service, eg. {{service { 'cron': ensure => 'running } }} 2. Puppet runs should pass normally 3. Install runit: apt install runit 4. Run puppet (this will fail) Output: {{ Info: Using configured environment 'production' Info: Retrieving pluginfacts Info: Retrieving plugin Info: Loading facts Warning: Found multiple default providers for service: runit, debian; using runit Info: Caching catalog for pc-jessie.test Info: Applying configuration version 'xxxx' Error: /Stage[main]/Profile::Cron/Service[cron]: Could not evaluate: Could not get status for service Service[cron]: Execution of '/usr/bin/sv status /etc/sv/cron' returned 1: fail: /etc/sv/cron: unable to change to service directory: file does not exist Wrapped exception: Execution of '/usr/bin/sv status /etc/sv/cron' returned 1: fail: /etc/sv/cron: unable to change to service directory: file does not exist }} It is possible to work around this by setting, in the node manifest, : {{ Service { provider => 'systemd', } }} |