我尝试从AppleScript启动控制台程序,并在崩溃时重新启动。我写了这段代码
repeat
do shell script "/path/to/program"
end repeat
但它挂了,mac无法重启。 我怎么能把“做shell脚本”放在另一个线程中?
答案 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