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