Shell 为什么我的子任务在ant任务中被杀死?
我正在使用Ant,它基本上是一个java程序,在Solaris上启动ksh test.ksh脚本。在这个ksh中,调用另一个ksh test1.ksh脚本来启动一个程序,我希望这个程序能够继续运行 Ant目标就像这样:Shell 为什么我的子任务在ant任务中被杀死?,shell,process,solaris,ant,Shell,Process,Solaris,Ant,我正在使用Ant,它基本上是一个java程序,在Solaris上启动ksh test.ksh脚本。在这个ksh中,调用另一个ksh test1.ksh脚本来启动一个程序,我希望这个程序能够继续运行 Ant目标就像这样: <target name="start.loading.data.Global"> <shellscript shell="ksh">./test.ksh</shellscript> <sleep seconds=
<target name="start.loading.data.Global">
<shellscript shell="ksh">./test.ksh</shellscript>
<sleep seconds="300"/>
</target>
<shellscript shell="ksh" spawn="true">./test.ksh</shellscript>
问题是我发现当ant目标完成时,程序已被终止。
我已经通过添加
<sleep seconds="300"/>
因为从我的应用程序日志来看,它可以运行约3分钟,在我添加睡眠后,它可以运行约8分钟
我试过使用
<parallel>
在ant脚本中,但不起作用。
我还尝试使用nohup启动ksh,但没有成功
有什么建议吗?
如果可能,还请解释shell是如何工作的。shellscript任务只是exec ant任务的扩展,根据,它可以使用所有相同的属性。您可能需要将spawn=true(属性之一)添加到shellscript任务中,如下所示:
<target name="start.loading.data.Global">
<shellscript shell="ksh">./test.ksh</shellscript>
<sleep seconds="300"/>
</target>
<shellscript shell="ksh" spawn="true">./test.ksh</shellscript>
Spawn=true应该使shell脚本被设置为一个单独的进程,并且能够在java/ant进程完成后继续运行。shell脚本任务只是exec ant任务的一个扩展,根据,它可以使用所有相同的属性。您可能需要将spawn=true(属性之一)添加到shellscript任务中,如下所示:
<target name="start.loading.data.Global">
<shellscript shell="ksh">./test.ksh</shellscript>
<sleep seconds="300"/>
</target>
<shellscript shell="ksh" spawn="true">./test.ksh</shellscript>
Spawn=true应该使shell脚本被设置为一个单独的进程,并且能够在java/ant进程完成后继续运行。虽然您的问题在技术上是关于主题的,但似乎主要是关于ant的,它是一个构建工具,具有更多的专业知识。所以你的问题被转移到了。在我看来,你的shell脚本test1.ksh正在完成,并且没有像你期望的那样不确定地运行。也许您应该在shell脚本中发布代码,或者解释更多您要做的事情。从您的描述来看,到目前为止似乎是一个shell问题。您是否尝试过在ksh文件名的末尾添加:./test.ksh&,这是一个不太可能的问题,但可能会奏效。虽然您的问题在技术上是关于主题的,但似乎主要是关于Ant,它是一个构建工具,具有更多的专业知识。所以你的问题被转移到了。在我看来,你的shell脚本test1.ksh正在完成,并且没有像你期望的那样不确定地运行。也许您应该在shell脚本中发布代码,或者解释更多您要做的事情。根据您的描述,到目前为止似乎是一个shell问题。您是否尝试过在ksh文件名的末尾添加:./test.ksh&,这是一个很长的过程,但可能会奏效。