スレーブを使用せずに、Tomcat を介して Hudson を Windows サービスとして実行しています。ジョブの最後のビルド ステップは、Java コードを呼び出すバッチ ファイルです。このコードは、PostgreSQL のコマンド ライン ツール psql を (Runtime.exec() 経由で) 使用して、ローカル マシン上にデータベースを作成し、最終的にそれに対していくつかのテストを実行します。
ジョブはこの時点まで進行し、データベースの作成を開始せずに無期限にハングします。コマンドラインからバッチファイルを実行すると、完全に機能します。http://hudson.gotdns.com/wiki/display/HUDSON/Spawning+processes+from+buildが適用されるとは思わない私が間違っている場合はお知らせください。
@anjanb を編集: バッチ ファイルの唯一の目的は Java コードを呼び出すことであり、唯一のユーザー入力はコマンド ライン引数として渡されます。ビルドのコンソール出力を介して直接入力されていることがわかります。
Process Explorer は、psql が開始されていることを示していますが、psql が与えられた最初のコマンドは新しいデータベースを作成することであるため、明らかに実行されていませんが、それは起こっていません。
編集 2: Hudson ユーザーのメーリング リストからヒントをいくつか得ました。月曜日にそれらを試して、また報告します。
編集 3: Java コードは既に出力ストリームを消費していました。コードの開発時にその記事を使用しました。何が起こっているのかわからないので、psql と Runtime.exec() に頼るのではなく、JDBC を使用してデータベースを作成するようにコードを再開発しています。