我有一个启动 Ant 脚本的 STAF 工作,所有这些工作都在功能 ID 下运行。ant 脚本执行基本的“初始化”任务,这些任务运行良好,然后挂起以下任务之一:删除、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>
我能够 sudo 到这个功能 ID 并从 shell 运行相应的命令就好了(例如:rm -rf /path/results/latestDate)。很明显,在 Ant 环境中运行在功能 id 下有些不同。(其实我自己的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)如何将挂起转换为硬故障