16 apr 2015 kl. 21:20 skrev Damien Sorresso <dsorre...@apple.com>: > > There are a couple strategies you can use. > > In your launchd.plist(5), you can define a certain environment variable, like > LAUNCHED_BY_LAUNCHD or something. If you check for that variable with > getenv(3) and it is not present, you know that you weren't launched properly. > > Alternatively, as of Yosemite, launchd sets an environment variable called > XPC_SERVICE_NAME whose value is the label you've given your job. You can > check that too.
Any thoughts on checking in with launchd and getting the job label? launch_data_dict_lookup(checkin_response, LAUNCH_JOBKEY_LABEL) predictably fails when run on the commandline, and succeeds when started as a daemon by launchd. > Do not do a getppid(3) check against 1. It will fail on older OSes if you're > an agent, and the kernel may reparent processes to PID 1 under certain > conditions, so having a parent PID of 1 is not necessarily indicative of > being managed by launchd. I suspected as much, good to know :) -- Per Olofsson, IT-service, University of Gothenburg _______________________________________________ launchd-dev mailing list launchd-dev@lists.macosforge.org https://lists.macosforge.org/mailman/listinfo/launchd-dev