Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 等待后台进程_Macos_Applescript - Fatal编程技术网

Macos 等待后台进程

Macos 等待后台进程,macos,applescript,Macos,Applescript,我正在创建一个applescript,它应该等待两个进程完成,然后执行一些逻辑。第一个是应用程序,它很容易等待 set program to "Applications/xyz.app" repeat until (application program is not running) delay 1 end repeat 现在是我的后台任务,它不工作,因为它是一个直接调用的可执行文件,而不是应用程序。如果有帮助的话,这个过程就是。有谁能告诉我这是如何工作的,或者告诉我正确的方向以找

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

set program to "Applications/xyz.app"

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

现在是我的后台任务,它不工作,因为它是一个直接调用的可执行文件,而不是应用程序。如果有帮助的话,这个过程就是。有谁能告诉我这是如何工作的,或者告诉我正确的方向以找到答案吗?

尝试使用
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

谢谢你的工作!如果您不介意后续问题:如何比较返回代码<代码>重复直到((do shell script)/usr/bin/pgrep aria2c“)=”)延迟直到程序关闭,然后返回一个脚本错误“命令以非零状态退出”