почему мою подзадачу убивают в муравейнике? - PullRequest
2 голосов
/ 09 марта 2012

Я использую Ant, который в основном является Java-программой для запуска сценария ksh (test.ksh) в Solaris. Внутри этого ksh вызывается другой сценарий ksh (test1.ksh), который запускает программу, и я хотел бы, чтобы эта программа продолжала работать.

Цель Ant выглядит следующим образом:

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

Проблема в том, что я обнаружил, что когда цель муравья закончилась, программа была убита. Я подтверждаю это, добавив

    <sleep seconds="300"/>

потому что из журнала моего приложения оно может работать около 3 минут, а после добавления режима сна оно может работать около 8 минут.

Я пытался использовать

    <parallel> 

в скрипте муравья, но не работает. Я также пытался использовать nohup для запуска ksh, но ничего не вышло.

Есть предложения? Если возможно, пожалуйста, объясните, как работает оболочка.

1 Ответ

0 голосов
/ 25 апреля 2012
Задача

shellscript - это просто расширение задачи exec и, согласно документации , она может использовать все те же свойства.Возможно, вам понадобится добавить spawn = true, которое является одним из свойств exec , к вашей задаче шеллскрипта, например:

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

Spawn = true должно привести к тому, что скрипт оболочки будет настроен какотдельный процесс и возможность жить после завершения процесса java / ant.

...