从AppleScript启动控制台程序并监视它的状态

时间:2011-05-29 07:28:36

标签: macos applescript console-application

我尝试从AppleScript启动控制台程序,并在崩溃时重新启动。我写了这段代码

repeat
     do shell script "/path/to/program"
end repeat

但它挂了,mac无法重启。 我怎么能把“做shell脚本”放在另一个线程中?

1 个答案:

答案 0 :(得分:1)

您需要做的只是放一个“&”命令末尾的字符。这将它发送到后台。但是我不会使用你的代码。重复循环将永远运行,并在运行时生成新进程。最好的办法是运行一个逗留开放的AppleScript,定期检查进程是否正在运行。如果不是那么AppleScript可以启动它。重复循环不是你想要的。试试这个代码。将其另存为应用程序,并在保存窗口中选中保持打开状态框。

on run

end run

on idle
    set runShellScript to false

    tell application "System Events"
        if not (exists process "processName") then
            set runShellScript to true
        end if
    end tell

    if runShellScript then do shell script "/path/to/program &"

    return 30 -- the script will stop for 30 seconds then run again until you quit the applescript
end idle