【发布时间】:2012-03-09 10:29:32
【问题描述】:
我正在使用 Ant,它基本上是一个在 Solaris 上启动 ksh (test.ksh) 脚本的 java 程序。在这个 ksh 中,调用另一个 ksh (test1.ksh) 脚本来启动一个程序,我希望这个程序可以继续运行。
Ant 目标看起来像这样:
<target name="start.loading.data.Global">
<shellscript shell="ksh">./test.ksh</shellscript>
<sleep seconds="300"/>
</target>
问题是我发现当ant target完成时,程序已经被杀死了。 我已经通过添加确认它
<sleep seconds="300"/>
因为从我的应用程序日志来看,它可以运行大约 3 分钟,而我添加睡眠后,它可以运行大约 8 分钟。
我尝试过使用
<parallel>
在 ant 脚本中但没有工作。 我也试过用nohup来启动ksh,但是没有用。
有什么建议吗? 如果可能,还请解释一下 shell 的工作原理。
【问题讨论】:
-
虽然您的问题在技术上是 Unix & Linux 的主题,但似乎主要是关于 Ant,它是一种构建工具,Stack Overflow 拥有更多的专业知识。所以你的问题已经转移到Stack Overflow。
-
在我看来,您的 shell 脚本 test1.ksh 正在完成并且没有像您期望的那样无限期地运行。也许您应该在 shell 脚本中发布代码,或者解释更多您正在尝试做的事情。到目前为止,从您的描述来看,似乎是一个 shell 问题。
-
您是否尝试过在 ksh 文件名的末尾添加
&:<shellscript shell="ksh">./test.ksh &</shellscript>,这是一个很长的尝试,但也许它会起作用。