如何在背景中从applescript运行多个shell脚本



我正在启动Apple脚本的A JAR应用程序。

do shell script quoted form of jvmpath & " -jar -XstartOnFirstThread -Dapple.awt.UIElement=true -Dfile.encoding=UTF8 " & quoted form of jarpath & " " & quoted form of parameters

脚本一直在运行,直到我退出JAR应用程序为止。

但是我需要启动另一个申请表shell脚本。

由于我在可可应用程序中这样做,所以我想在后台这样做。

因此,我可以在多个终端实例中启动多个脚本(以免它们彼此阻止)。

注意:我通过在两个不同的终端窗口中运行命令来对其进行测试,该命令按预期工作。

请参阅技术注释TN2065,特别是问题的答案:"我想启动一个背景服务器进程;我该如何制作shell脚本不要等到命令完成?"one_answers"我已经启动了一个背景过程;如何获得其流程ID,以便可以使用其他shell命令控制它?

在后台运行两个命令的苹果code看起来像这样:

set pid1 to do shell script command1 & " &> /dev/null & echo $!"
set pid2 to do shell script command2 & " &> /dev/null & echo $!"

PID1和PID2变量将设置为两个命令的进程ID。稍后,您可以通过调用这样的函数来检查命令是否仍在运行:

on isProcessRunning(pid)
    try
        do shell script "kill -0 " & pid
        set isRunning to true
    on error
        set isRunning to false
    end try
    return isRunning
end isProcessRunning

最新更新