|
|
|
10.5: Automatically restart a crashed program
Now I am not going to even suggest I am an expert,
SuccessfulExit sound like what we are looking for, but Does it work. I have tried the SuccessfulExit key true and false, with and without KeepAlive true. It does not work So please show us how you would do it, ( keeping the app running when it crashes but letting it stay quit when you quit it.) --- mh
10.5: Automatically restart a crashed program
I have tried the SuccessfulExit key true and false, with and without KeepAlive true. It does not work So please show us how you would do it, ( keeping the app running when it crashes but letting it stay quit when you quit it.)The key here is that KeepAlive can be either a bool OR a dict- in this case we need it to be a dict, with the SuccessfulExit key as a child bool set to false. So, using my company's flight management software as an example, you would end up with the following LaunchAgent .plist file (I put it in my home library/LaunchAgents folder):
I made the inital file using Lingon, and then simply edited it to add the KeepAlive dict/key set. The program arguments string needs to be the path to the actual executable inside the app bundle, not just to the .app (assuming it is a bundle app) as shown.
Of course, this loads immediately at login. If this is the desired behavior, then you are done. If you don't want this, then put the .plist file in your documents directory or something, and use something like the following two line script to load it as desired: The unload command is needed only if you want to launch the application multiple times in a session. From what I can tell, once loaded the LaunchAgent remains loaded, and simply stops monitoring the app after it quits cleanly- but doesn't unload. In order to relaunch the app, you first have to unload the LaunchAgent, the load it again, thus the first line of the script. That script should be able to be put into an apple script using the "do shell script" apple script command if you want (although I didn't test this), or just leave it as a terminal script. Then just run that script, and launchd will launch your application, monitor it, and restart it if it crashes, but not if it exits cleanly.
Perhaps in the end this isn't all that much simpler than your method, but it feels cleaner to me.---
10.5: Automatically restart a crashed program
Thanks for explaining all that macavenger, I will check it out.
--- mh |
SearchFrom our Sponsor...What's New:HintsNo new hintsComments last 2 days
Links last 2 weeksNo recent new linksWhat's New in the Forums?
The Editor's Corner...Here are some of my (robg) other projects...
Hints by TopicNews from Macworld
The macosxhints PollWhat version of OS X are you running as your main OS?
Other polls | 11,373 votes | 42 comments
|
|
Copyright © 2009 Mac Publishing LLC (Privacy Policy) Contact Us All trademarks and copyrights on this page are owned by their respective owners. |
Visit other IDG sites: |
|
|
|
Powered by Geeklog Created this page in 0.31 seconds |
|