I use application Isadora for a video installation running automatically. It appear that sometimes Isadora Freeze. In activity monitor it say “not responding” in red.
I have already some script to auto restart the application and the file:/ after a crash, an unexpected quit or simply if not active.
But when it become to freeze it still look active, even if not responding, so those scripts don’t have effects.
It’s on a MacPro 3.1 with 10.8.5.
Do someone knew how applescript / automator / Lingon X could detect a frozen application and doing an auto force quit?
Thanks a lot.
Model: MacPro 3.1
Browser: Safari 602.4.8
Operating System: Mac OS X (10.8)
There is probably a terminal way to detect non-responsive applications and then you can force them to quit and relaunch, but since I’m not an expert in terminal, the first thing I’d try is something just in Applescript. I don’t have Isadora, but it looks like it has an Applescript dictionary. I’d try just having a stay-open Applescript send Idadora some harmless Applescript query on a delayed repeat loop (name of window 1, or whatever Isadora supports) and if it fails to return that information to Applescript within a certain timeframe, then assume it’s crashed and force quit it.
Force quit is just:
tell application "System Events" to set theID to (unix id of processes whose name is "Idadora")
do shell script "kill -9 " & theID
And then you can delay a few seconds and relaunch.
thanks for the reply t.spoon
I did try something like that, somehow like you purpose :
set v to ""
tell application "Isadora" to set v to version
if v is "" then
do shell script "killall Isadora"
but don’t work,then I finally did this (from some web search and modified) :
tell application “Activity Monitor” to run
tell application “System Events” to tell process “Activity Monitor”
tell outline 1 of scroll area 1 of window 1 – working with the list
set notResponding to rows whose value of first static text contains “ne rÃ©pond pas” – Looking for Not responding process
repeat with aProcess in notResponding
set pid to value of text field 5 of aProcess – For each non responding process retrieve the PID
if pid is not “” then do shell script ("kill -9 " & pid) – KILL the PID.
it seems to work… waiting of the next “freeze”…
And when Isadora is not active a second AppleScript relaunch it.
So I hope when he unexpected quit or freeze he will restart using one or the two AppleScript…