2011-05-29 85 views
1

我試圖從AppleScript啓動控制檯程序並在崩潰時重新啓動。我寫了這個代碼從AppleScript啓動控制檯程序並監視其狀態

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

但它掛起和mac無法重新啓動。 我怎樣才能把「做外殼腳本」在另一個線程?

回答

1

您只需在命令末尾加上一個「&」字符即可。這將它發送到後臺。但是我不會使用你的代碼。重複循環將永遠運行,並且只要運行就產生新的進程。你最好的選擇是運行一個保持開放的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 
相關問題