I'm struggling to understand how to use launchctl enable/disable instead of launchctl load/unload on 10.11 15A279b
The specific issue is I want to disable mongodb so it no longer starts at boot:
manoa:~ mike$ ps -ef|grep [m]ongo manoa:~ mike$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist manoa:~ mike$ ps -ef|grep [m]ongo 501 1722 1 0 9:12AM ?? 0:00.09 /usr/local/opt/mongodb/bin/mongod --config /usr/local/etc/mongod.conf manoa:~ mike$ launchctl disable ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist Usage: launchctl disable <service-target>
The man page for launchctl states:
launchctl allows for detailed examination of launchd endpoints. A domain
manages the execution policy for a collection of services. A service may
be thought of as a virtual process that is always available to be spawned
in response to demand. Each service has a collection of endpoints, and
sending a message to one of those endpoints will cause the service to
launch on demand. Domains advertise these endpoints in a shared namespace
and may be thought of as synonymous with Mach bootstrap subsets.
Many subcommands in launchctl take a specifier which indicates the target
domain or service for the subcommand. This specifier may take one of the
following forms:
I'm lost without some concrete example/tutorial at this point. Which domain is my plist a part of (or can it sit across several?)
Is there a WWDC session that covers how to understand what the difference is between:
- system/[service-name]
- user/<uid>/[service-name]
- login/<asid>/[service-name]
- gui/<uid>/[service-name]
- session/<asid>/[service-name]
- pid/<pid>/[service-name]
Is <service-target> from the Usage: help one of the above choices or something else?
manoa:~ mike$ launchctl list|grep mongo 1722 0 homebrew.mxcl.mongodb
What is service-name specifically in this case?
manoa:~ mike$ launchctl disable pid/1722/homebrew.mxcl.mongodb Could not disable service: 1: Operation not permitted