天天看點

Hudson 執行shell腳本(Hudson 啟動Tomcat 無效問題)

在使用hudson的執行sh腳本的時候,如果sh腳本是一個背景程序,如 tomcat 這樣的服務。如果使用hudson的預設配置,會發現這些sh 程序有啟動的過程,但是不會常駐背景,看hudson 輸出的日志,發現hudson在job建構結束之後,kill所有未終止的衍生程序。 

在hudson另一wiki頁面上進一步描述了hudson殺掉衍生程序的情況。hudson在執行job時會設定一系列環境變量,這些環境變量将被job衍生出的程序繼承。hudson在kill衍生程序的時候會檢視程序的環境變量,如果找到它之前設定的環境變量,則将其殺掉。wiki上給出了一個簡單的方法來避免程序被kill掉:修改hudson設定的環境變量build_id的值,進而讓hudson認為此程序不是由job的建構過程衍生的。

方法1:全局設定

打開:hudson > 系統管理 > 系統設定

設定build_id 值為 allow_to_run_as_daemon

Hudson 執行shell腳本(Hudson 啟動Tomcat 無效問題)

這樣我們就可以在需要執行sh腳本的地方執行寫入執行sh的指令即可,以啟動和停止tomcat為例,如下圖:

Hudson 執行shell腳本(Hudson 啟動Tomcat 無效問題)

方法2:在需要執行sh腳本的地方設定build_id

直接在command裡面先設定build_id,然後接着執行sh腳本,如下:

Hudson 執行shell腳本(Hudson 啟動Tomcat 無效問題)

推薦大家使用第一種方法。

-------------------------------------

(完)

huds