Как убить запущенную exec задачу в ANT - PullRequest
3 голосов
/ 25 января 2012

Я пытаюсь запустить сервер weblogic с помощью команды ant exec, после запуска операции exec-процесс создает дочерний процесс, я хочу убить родительский процесс и сохранить дочерний процесс в живых.

Myкод ниже

<project name="startserver" default="start" basedir=".">
        <target name="start">
            <exec dir="C:\bea\user_projects\domains\devtest" 
                     executable="cmd" 
                     failonerror="true">
                     <arg value="/c"/>
                 <arg value="startWebLogic.cmd"/>
             </exec>
        </target>
</project>

этот код запускает сервер, и мое приложение также работает, проблема в том, что ant-скрипт все еще работает и, более того, он не завершается, как показано ниже

enter image description here

как мне выйти из exec и убить родительский процесс, в качестве обходного пути я попытался использовать

timeout

атрибут задачи exec, но этоубивает как родительский, так и дочерний процесс, как я могу добиться этого, чтобы выход ANT и сервер продолжали работать в фоновом режиме.

Ответы [ 2 ]

2 голосов
/ 25 января 2012

Попробуйте атрибут spawn="true" задачи exec.Он должен делать то, что вы ищете.Но остерегайтесь последствий для обработки ввода / вывода (см. Ссылку).

0 голосов
/ 01 марта 2012

Когда вы устанавливаете spawn="true" для тега exec, дочерний процесс выполняется в фоновом режиме, даже если текущий процесс завершает выполнение.В вашем случае вместо cmd используйте startweblogic.cmd непосредственно как команду exec.

...