[launchd-dev] Working with overrides.plist
Dean Shavit
acn-lists-dean at macworkshops.com
Thu Sep 3 11:55:24 PDT 2009
On Sep 3, 2009, at 1:02 PM, Damien Sorresso wrote:
> On Sep 3, 2009, at 10:37 AM, Dean Shavit wrote:
>> I am aware of that. But there's differences in behavior. In
>> Leopard, specifying any Session Type listed in the LaunchAgent
>> using "sudo" worked to write the Disable key in the plist targeted.
>> In Snow Leopard, this behavior does not hold true for the
>> overrides.plist
>
> I'd argue that the Leopard behavior was improper. Asking to modify a
> job in a session where it cannot exist should be a no-op.
Agreed that the Leopard behavior was improper. However, since the
"proper" behavior was not documented, and still isn't, I would argue
that the launchctl man page needs some concrete examples and
explanation of the proper behavior - it is really thin, and apropos
shows no mention of "overrides.plist" anyway.
My LaunchAgent contains *two* Session Types - Aqua and LoginWindow,
just like com.apple.RemoteDesktop.plist
If the "correct" behavior is to limit the unload/load behavior to
"active" or "existable" Session Types, you should say so in the man
page. Since it worked in Leopard, I made the incorrect assumption it
would carry over to Snow Leopard.
If you wish, I will *volunteer* to expand the man page with some more
examples for the next release of Mac OS X. Just send me the NDA, and
I'm your man-scribe for the next two years....
>
>
> In any case, we really hope to clean up the mess of sessions post-
> Snow Leopard. We also just want to get rid of the Disabled key
> entirely.
OK, go ahead, get rid of the key, but please leave some sort of
mechanism for sysadmins or developers to disable a LaunchAgent via an
override mechanism so long as they can sudo as root.
I also personally feel that once the override is applied, no logout
should be required to unload a currently running instance of the
LaunchAgent in quesiton - the override should automatically unload the
LaunchAgent for currently logged in users and terminate any processes
they've spawned. As it is, we have a lot of manual cleanup to do if we
want to stop one without a logout.
Also, while we're on the subject of post-Snow Leopard, please
consider implementing group, user, and computer-level management of
LaunchAgents via MCX.
>
> --
> Damien Sorresso
> BSD Engineering
> Apple Inc.
>
More information about the launchd-dev
mailing list