Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.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
Shell 为什么我的子任务在ant任务中被杀死?_Shell_Process_Solaris_Ant - Fatal编程技术网

Shell 为什么我的子任务在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=

我正在使用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="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&,这是一个很长的过程,但可能会奏效。