0

Ant スクリプトを開始する STAF ジョブがあり、すべて機能 ID の下で実行されます。Ant スクリプトは、正常に動作する基本的な「init」タスクを実行した後、ファイル システムでどれだけ混乱しているかに応じて、delete、mkdir、または junit のいずれかのタスクで停止します。

<target name="run.nightly.tests" depends="init">
    <delete dir="/path/results/latestDate" />
    <mkdir dir="/path/results/latestDate"  />
    <chmod perm="777" dir="/path/results/latestDate" />
    <junit printsummary="on" fork="no">
                <!-- typical classpath/tests setup snipped -->
    </junit>
</target>

この機能 ID に対して sudo を実行し、対応するコマンドをシェルから問題なく実行できます (例: rm -rf /path/results/latestDate)。機能 ID の下で、Ant 環境での実行について明らかに何かが異なります。(実際、自分の ID で問題なくスクリプトを実行できます)

/path/results には、スクリプトを実行する前に 777 のアクセス許可があり、/path/results/latestDate が存在する場合、777 のアクセス許可を持つ同じ機能 ID によって所有されます。

STAF は次のスクリプトを起動します。

export ANT_HOME=/opt/apache-ant-1.8.2
#This entire directory tree and jar files are world r+x
LIB_DIR=/home/afreed/automation/dependencies/mail
ant -debug -verbose -buildfile nightlyTest.xml -lib ${LIB_DIR}/mail.jar:${LIB_DIR}/activation.jar

これらのタスクのいずれかで Ant がアクセス許可エラーで失敗するかどうかは理解できますが、ハングする理由はわかりません。

a) ハングが発生した理由を特定する方法、または b) ハングをハード エラーに変換する方法のいずれかを支援してください

4

1 に答える 1

0

Ant スクリプトが、STDIN からの入力を待っている exec コマンドでハングアップしていた問題を解決しました。('spawn' 属性で起動されたため、実行はその時点を過ぎても継続していました。) この 'exec' タスクを 'init' ターゲットから削除すると、Ant スクリプトは期待どおりに実行されました。

<!-- hanging task in init-->
<exec executable="blah.sh" spawn="true">
于 2013-06-27T12:38:20.230 に答える