diff options
-rwxr-xr-x | lib/puppet/provider/service/smf.rb | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/puppet/provider/service/smf.rb b/lib/puppet/provider/service/smf.rb index 0071a8c93..f7f3a3128 100755 --- a/lib/puppet/provider/service/smf.rb +++ b/lib/puppet/provider/service/smf.rb @@ -70,7 +70,10 @@ Puppet::Type.type(:service).provide :smf, :parent => :base do end begin - state = svcs("-H", "-o", "state", @resource[:name]).chomp + # get the current state and the next state, and if the next + # state is set (i.e. not "-") use it for state comparison + states = svcs("-H", "-o", "state,nstate", @resource[:name]).chomp.split + state = states[1] == "-" ? states[0] : states[1] rescue Puppet::ExecutionFailure info "Could not get status on service %s" % self.name return :stopped |