2013-06-26 60 views
0

我有一個啓動Ant腳本的STAF作業,它們都在功能ID下運行。 ant腳本執行的基本'init'任務可以正常工作,然後掛在下列任務之一上:delete,mkdir或junit,具體取決於我在文件系統中做了多少混亂。由於懷疑權限問題,Ant任務掛起

<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,並從殼運行相應命令就好(例如:室射頻/路徑/結果/ latestDate)。顯然,在功能標識下,在Ant環境中運行的東西是不同的。 (事實上​​,我可以用我自己的id運行腳本)

/path/results在我的腳本運行之前有777個權限,當/ path/results/latestDate存在時,它擁有相同的功能ID w/777權限。

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 

我會明白,如果螞蟻會失敗在任何這些任務,權限錯誤,但我不明白爲什麼它會掛起。

我想幫助或者a)確定爲何會出現掛起或b)如何轉換掛硬故障

+0

它可能會幫助調試,以便在Ant掛起時具有當前堆棧。要獲取堆棧,請使用jstack,或發送kill -3到運行Ant的進程並查看其標準輸出。 –

回答

0

解決,Ant腳本掛在一個從等待輸入一個exec命令STDIN。 (執行已經持續了那個點,因爲它是用'spawn'屬性啓動的。)當我從'init'目標中刪除這個'exec'任務時,Ant腳本按預期運行。

<!-- hanging task in init--> 
<exec executable="blah.sh" spawn="true">