diff --git a/lib/cask/artifact/pkg.rb b/lib/cask/artifact/pkg.rb index 56077b38e60..369a68ae3dc 100644 --- a/lib/cask/artifact/pkg.rb +++ b/lib/cask/artifact/pkg.rb @@ -104,6 +104,8 @@ class Cask::Artifact::Pkg < Cask::Artifact::Base [false, true].each do |with_sudo| xml_status = @command.run('/bin/launchctl', :args => ['list', '-x', service], :sudo => with_sudo) if %r{^<\?xml}.match(xml_status) + @command.run('/bin/launchctl', :args => ['unload', '-w', '--', service], :sudo => with_sudo) + sleep 1 @command.run!('/bin/launchctl', :args => ['remove', '--', service], :sudo => with_sudo) sleep 1 end diff --git a/test/cask/artifact/pkg_test.rb b/test/cask/artifact/pkg_test.rb index 128e02208b1..de8a4372afb 100644 --- a/test/cask/artifact/pkg_test.rb +++ b/test/cask/artifact/pkg_test.rb @@ -108,6 +108,7 @@ describe Cask::Artifact::Pkg do ) Cask::FakeSystemCommand.expects_command(['/usr/bin/sudo', '-E', '--', '/bin/launchctl', 'remove', '--', 'my.fancy.package.service']) + Cask::FakeSystemCommand.expects_command(['/usr/bin/sudo', '-E', '--', '/bin/launchctl', 'unload', '-w', '--', 'my.fancy.package.service']) Cask::FakeSystemCommand.stubs_command(['/usr/bin/sudo', '-E', '--', '/usr/sbin/kextstat', '-l', '-b', 'my.fancy.package.kernelextension'], 'loaded') Cask::FakeSystemCommand.expects_command(['/usr/bin/sudo', '-E', '--', '/sbin/kextunload', '-b', '--', 'my.fancy.package.kernelextension'])