# File lib/puppet/provider/service/launchd.rb, line 183
183:     def stop
184:         job_path, job_plist = plist_from_label(resource[:name])
185:         did_disable_job = false
186:         cmds = []
187:         cmds << :launchctl << :unload
188:         if self.enabled? == :true # keepalive jobs can't be stopped without disabling
189:             cmds << "-w"
190:             did_disable_job = true
191:         end
192:         cmds << job_path
193:         begin
194:             execute(cmds)
195:         rescue Puppet::ExecutionFailure
196:             raise Puppet::Error.new("Unable to stop service: %s at path: %s" % [resource[:name], job_path])
197:         end
198:         # As unload -w sets the Disabled flag, we need to add it in after
199:         if did_disable_job and resource[:enable] == :true
200:             self.enable
201:         end
202:     end