0

我有一个启动 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)如何将挂起转换为硬故障

4

1 回答 1

0

解决了,Ant 脚本挂在等待来自 STDIN 输入的 exec 命令上。(因为它是使用“spawn”属性启动的,所以继续执行。)当我从“init”目标中删除这个“exec”任务时,Ant 脚本按预期运行。

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