New Ticket     Tickets     Wiki     Browse Source     Timeline     Roadmap     Ticket Reports     Search

Ticket #23677 (new enhancement)

Opened 3 years ago

Last modified 22 months ago

Uninstall of a port should automatically unload daemons

Reported by: tomldavis@… Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: base Version: 1.8.2
Keywords: startupitem launchctl Cc: ryandesign@…, rmstonecipher@…
Port:

Description

I'm developing on a port that starts a daemon using startupitem.executable. During installation, I get the standard message "A startup item has been generated ...". After I start the daemon with launchctl, everything works as expected.

However, if I uninstall the port without first manually unloading the daemon with launchctl, launchd repeatedly tries to restart the daemon (which of course no longer exists) every 10 seconds, ad infinitum.

This behavior (not automatically unloading daemons on uninstall) seems contrary to the MacPorts philosophy of a clean install/uninstall. This seems like a huge trap for the non-developer that doesn't have any idea of what launchd does and just wants to uninstall a port.

Change History

comment:1 Changed 3 years ago by ryandesign@…

  • Cc ryandesign@… added

And when you upgrade a port that you've previously loaded, perhaps MacPorts should unload the old version's daemon and load the new one.

comment:2 Changed 2 years ago by ryandesign@…

Resolving this would also close #14774 where this was previously brought up.

comment:3 Changed 22 months ago by rmstonecipher@…

  • Cc rmstonecipher@… added

Cc Me!

comment:4 Changed 22 months ago by rmstonecipher@…

On the other end of things, ports with startupitems usually work best when their startupitems are loaded.
If the port with a startupitem is several steps ahead of the user's requested port install, the "load the startupitem" note may be missed.
Could the user be cut out of this equation by auto-loading startupitems during the activate phase?
This would work for ports with startupitems which work as-is, but others may experience one or more of the following problems:

  • some ports use both user- and system-level startupitems (e.g. dbus)
  • some ports have configuration files that must be edited before running the daemon/startupitem

What other issues could auto-loading startupitems cause?

Ryan Stonecipher

Note: See TracTickets for help on using tickets.