为什么我的子任务在蚂蚁任务中被杀死



我使用Ant,它基本上是一个在Solaris上启动ksh(test.ksh)脚本的java程序。在这个ksh中,调用另一个启动程序的ksh(test1.ksh)脚本,我希望这个程序能够继续运行。

蚂蚁的目标看起来像这样:

    <target name="start.loading.data.Global">
    <shellscript shell="ksh">./test.ksh</shellscript>
    <sleep seconds="300"/>
    </target>

问题是我发现当蚂蚁目标完成时,程序已经被杀死了。我已经通过添加来确认

    <sleep seconds="300"/>

因为从我的应用程序日志来看,它可以运行大约3分钟,在我添加睡眠后,它大约可以运行8分钟。

我试过使用

    <parallel> 

在ant脚本中,但不起作用。我也试着用nohup来启动ksh,但没有成功。

有什么建议吗?如果可能的话,还请解释shell是如何工作的。

shellscript任务只是exec-ant任务的扩展,根据文档,它可以使用所有相同的属性。您可能需要将执行属性之一的spawn=true添加到shell脚本任务中,如下所示:

<shellscript shell="ksh" spawn="true">./test.ksh</shellscript>

Spawn=true应该使shell脚本被设置为一个单独的进程,并能够在java/ant进程完成后继续运行。

相关内容

  • 没有找到相关文章

最新更新