等待后台进程

时间:2016-08-22 11:50:00

标签: macos applescript

我正在创建一个应该等待两个进程完成然后执行一些逻辑的applescript。第一个是应用程序,很容易等待。

set program to "Applications/xyz.app"

repeat until (application program is not running)
    delay 1
end repeat

现在我的后台任务不起作用,因为它是一个直接调用的可执行文件,而不是一个应用程序。如果它有助于该过程aria2。谁能告诉我这是如何运作的,还是指出我正确的方向找到答案?

1 个答案:

答案 0 :(得分:1)

尝试使用pgrep查找名为aria2的流程的流程ID,如下所示:

do shell script "/usr/bin/pgrep aria2"

我没有aria2所以我只猜测它的进程名称 - 首先在终端中尝试它以查看它是否有效:

pgrep aria2

如果没有运行,将没有输出。

要查看更全面的输出,请运行:

ps -aef | grep -i aria

如果你想在一个循环中检查它,你可以做这样的事情:

set ariarunning to 0
repeat until ariarunning > 0
   try
      set ariarunning to do shell script "/usr/bin/pgrep aria"
   end try
   delay 1
end repeat