我正在启动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