On Tue, Mar 11, 2008 at 8:41 PM, Mac QA <macqaguy@gmail.com> wrote:
The Apple Multiple User Environments document [1] makes two statements regarding this. First, "If a user process daemonizes itself prior to logout, it can live past the end of the user logout and prolong the existence of the login session." And Second, "Per-user services are shut down automatically and are not given the chance to abort the logout procedure." The mylaunchagent process is always a background process just invoked by launchd, so given the first statement I guess that is why it is persisting logout. However, given the second statement, since this is a per-user service as launchagents are by definition, I don't understand why it isn't shut down automatically on logout. Frankly, those two statements seem contradictory.
I take the second statement to mean "We send a SIGKILL to the agent". If the agent has daemonized, the child will have been re-parented, hence the first statement. In short: the mylaunchagent process must not daemonize, i.e., must not fork and exit. If it has a '-f' (run in foreground) option or similar, use that. Hamish