|
|
10.5: Automatically restart a crashed program
This hint is for when the app crashes nor when you quit. Keep always running is not the aim.
10.5: Automatically restart a crashed program
This hint is for when the app crashes nor when you quit. Keep always running is not the aim.As I noted in my comment, you can do this through launchd Show me where you see 'Only when it crashes', Because in Lingon for Leopard there is no such options AFAICSfrom the launchd.plist man page (which has all the configuration options you can put into a LaunchAgent or LaunchDaemon plist file):
It looks like Lingon may not have this key easily available, but it most certainly is an option through launchd.
---
10.5: Automatically restart a crashed program
Show me where you see 'Only when it crashes', Because in Lingon for Leopard there is no such options AFAICSOk, yeah. The newest version of Lingon apparently doesn't have this option. Actually, the latest version is a bit of a step back from the older ones I've used in terms of flexibility and power. In the previous version you could put multi-line commands in on the main screen, and it had a custom editor as well if you wanted to edit the .plist directly. The current version is easier to use for basic stuff, but not as good for advanced stuff. Unless, of course, I am missing something, in which case please correct me :) So yeah, you would need to edit the .plist file directly to add this key. ---
10.5: Automatically restart a crashed program
Now I am not going to even suggest I am an expert,
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. |
SearchFrom our Sponsor...Latest Mountain Lion HintsWhat's New:HintsNo new hintsComments last 2 daysLinks last 2 weeksNo recent new linksWhat's New in the Forums?
Hints by TopicNews from Macworld
From Our Sponsors |
|
Copyright © 2014 IDG Consumer & SMB (Privacy Policy) Contact Us All trademarks and copyrights on this page are owned by their respective owners. |
Visit other IDG sites: |
|
|
|
Created this page in 0.05 seconds |
|