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) ハングをハード エラーに変換する方法のいずれかを支援してください