4

リモートWindowsマシンでTomcatサーバーを起動および停止したい。antスクリプトからこれを実行できるようにしたい(ビルドサーバーがこれを実行できるようにするため)。

ユーザー名とパスワードをリモートマシンに渡す方法がないため、sc.exeを使用してこれを解決することはできませんでした。

代わりに、psexecを使用してリモートサーバーでコマンドを実行しています。私のantスクリプトは次のようになります。

<target name="start_tomcat_server">
    <exec executable="psexec.exe" failonerror="true">
        <arg value="/accepteula"/>
        <arg value="\\test_host"/>
        <arg value="-u"/>
        <arg value="username"/>
        <arg value="-p"/>
        <arg value="password"/>
        <arg value="net"/>
        <arg value="start"/>
        <arg value="tomcat6"/>
    </exec>
</target>

コマンドプロンプトからこのコマンドを実行すると、すべてが正常に機能します。
psexec.exe /accepteula \\test_host -u username -p password net start tomcat6

しかし、antターゲットを実行すると、psexecプロセスは終了せず、次の出力でハングします。

start_tomcat_server:
     [exec]
     [exec]PsExecv1.98-プロセスをリモートで実行します
     [exec] Copyright(C)2001-2010 Mark Russinovich
     [exec]Sysinternals-www.sysinternals.com
     [exec]

この作品を作るために私ができることはありますか?

4

1 に答える 1

1

もう少し時間を費やした後、私はこれに対する解決策を見つけました。psexecにパラメータ「-d」を指定すると、標準出力から切り離されます。

        ..。
        <arg value = "-d" />
        ..。

'-d'を追加すると、psexecは開始されたプロセスのPIDを返し、0ではないことに注意してください。したがって、antはコマンドが失敗したと見なします。

于 2010-09-13T07:53:19.743 に答える