2009-10-02 83 views
1

我有一個Hudson作業,它啓動了一個.bat腳本文件,它自己啓動我的Jonas應用程序服務器以及一些其他任務。從.bat啓動獨立進程

從我的奴隸哈德森正確啓動腳本,然後我的應用程序服務器啓動,但此時我的哈德森工作結束應用程序服務器被終止。這是由於在此過程中啓動的所有進程共享相同的管道(stdin/sdtout/stderr),因爲此處解釋爲http://wiki.hudson-ci.org/display/HUDSON/Spawning+processes+from+build

正如你已經明白,這真的不是我想要的!其實我有另一個哈德森的工作,是在我上面描述的測試我的應用程序之後發佈的。因此,由於我的應用程序服務器在哈德森工作結束的同時死亡,我的測試根本無法運行...

那麼我該如何解決這個問題?

這個問題是嚴格掛鉤的事實,這是哈德森是啓動腳本,如果我在命令行啓動相同的腳本不會出現在所有的問題...

在上面給出的鏈接他們建議使用允許在Windows中安排任務的「at」命令。我真的不想使用這個解決方案,因爲這意味着我的.bat腳本中的修改,因爲我從哈德森啓動它。

  • 我想有一種方法告訴我的bat文件,「確定你要啓動我的應用程序服務器,但在一個獨立的過程。」你們知道如何做到這一點?
  • 也許哈德森能解決這個問題嗎?你哈德森的傢伙知道嗎?

在此先感謝您的幫助!

回答

2

這裏最好的做法是清除環境變量BUILD_ID。在構建作業之後清理時,Hudson會在每個進程中查看BUILD_ID環境變量,以消除任何延遲的進程。所以通過清除這個環境變量,Hudson不會殺死這個進程。

+0

感謝您的輸入!我看到你是你的個人資料中的哈德森大師;) 我應該清除BUILD_ID變量還是應該將其設置爲BUILD_ID = dontKillMe,正如我在鏈接http://wiki.hudson-ci.org/display/上看到的那樣HUDSON /產卵+ + +從構建過程? – reef 2009-10-02 14:34:35

+0

哈德森錯誤報告https://hudson.dev.java.net/issues/show_bug.cgi?id=3105。 – reef 2009-10-02 14:55:46

+0

將Hudons中的BUILD_ID環境變量設置爲dontKillMe可以正常工作,但正如所報告的錯誤(上面的鏈接)中所述,這是一種解決方法。修正錯誤後,我會發布解決方案。 謝謝! – reef 2009-10-02 15:07:58

2

嘗試使用START命令啓動您的應用程序服務器。 This網站提供了一些使用示例。我猜你必須做對正確的參數一些實驗,但你的第一次嘗試應該是:

START "appServer" "[path to your application server]\applicationServer.exe" 
+0

在這個特定的上下文中,這個解決方案是不夠的,因爲所有東西都與Hudson中的錯誤相關聯(請參閱前面的註釋)。但是在一個沒有錯誤的情況下,這似乎是解決方案;) 謝謝! – reef 2009-10-02 15:22:19

+0

讓我重複一遍 - 這裏沒有錯誤,清除環境變量是處理問題的預期方式。問題3105是增強請求。 – 2009-10-22 17:48:46