[launchd-dev] launch cocoa-app (with gui) from launchd
bobkells at steelcape.com
Tue Dec 11 16:36:36 PST 2007
So now I know where the problem is, but not the solution.
First, my launchd plist is in ~/Library/LaunchAgents, and that is my
I issue commands to launchctl. The OnDemand key/value is set to
true. I am looking
for files on a specific path via WatchPaths. I have 2 cmd-line args;
"-d 4 -p /Users/bob/LaunchScriptTest".
The launchd plist contains the Program key, and I have also set the
first arg to the app-name.
My cocoa app is used to generate custom NSAlert messages, and is
currently being executed
from a script file. Ideally, it will be executed by launchd
directly. The alert panels appear
correctly when I run the app from both the cmd-line and the script
file. When the app is run
from the same script file, when the script file is launched by
launchd, it hangs at the call to the
runModal method of my NSAlert object. I have tailed my system-log
and watched a list of info
messages from the app, and everything is ok. The cmd-line args sent
to the app from launchd
are correct. I have a custom object connected to the File's Owner in
IB, and issue the call to runModal
from the applicationDidFinishLaunching method. I know there are some
things that launchd
specifically says are prohibited, such as a fork/exit. Does runModal
attempt any of these restrictions?
This is an interesting problem.
Thanks for getting back to me so quickly...bob
On Dec 11, 2007, at 12:52 PM, Kevin Van Vechten wrote:
> Are you sure you're loading the job with the per-user launchd?
> Which directory is the launchd plist installed in?
> - Kevin
> On Dec 10, 2007, at 5:46 PM, bob kells wrote:
>> I have been unsuccessful so far attempting to launch an xcode
>> cocoa app
>> from launchd. I have tried loading 2 different versions of a
>> plist that
>> reference either
>> the executable, or the .app bundle. Neither works. I noticed a
>> listing explaining
>> that the actual exe must be referenced, not the .app bundle. ps
>> shows that
>> the process actually gets
>> created both ways. However, nothing appears. I am able to launch
>> the app
>> successfully from a
>> script file and the cmd-line. But when the script file (which
>> launches the
>> app) is run
>> via launchd, again nothing happens. I am using WatchPaths, and
>> the Program
>> key has been set
>> to either the executable, or the .app bundle. Any suggestions out
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the launchd-dev