JBoss無規律自動關閉故障定位

轉載地址:http://blog.knowsky.com/264489.htmphp

最近遇到了幾回JBoss無規律自動關閉的奇怪現象,經過history歷史命令和last登陸信息,都看不到有人操做過的跡象。java

後來查了一些資料,JBoss官方論壇給出的幾條解釋是:
1.JBoss本身沒有設置能夠自動shutdown的機制;
2.JBoss能夠經過web console進行關閉,但咱們已經去掉了相關的軟件包;
3.JBoss可能接受Ctrl+C或非後臺運行的session中斷信號而執行shutdown。
web

後來我查到咱們的狀況和第3點很相似:ajax

經過日誌能夠看到JBoss是在06:02:04接到一個關閉請求的。
2011-10-27 06:02:04,086 INFO [org.jboss.bootstrap.microcontainer.ServerImpl] (JBossShutdown Hook) Runtime shutdown hook called, forceHalt: true
2011-10-27 06:02:05,089 INFO [org.apache.coyote.http11.Http11Protocol] (JBossShutdown Hook) Pausing Coyote HTTP/1.1 on http-0.0.0.0-80
2011-10-27 06:02:05,090 INFO [org.apache.coyote.http11.Http11Protocol] (JBossShutdown Hook) Stopping Coyote HTTP/1.1 on http-0.0.0.0-80
apache

而jack是在這個時候退出終端的:
jack pts/0 125.69.77.99 Thu Oct 27 05:20 - 06:02 (00:41)bootstrap

查看history歷史記錄,以前最後一次啓動JBoss是在05:49:20經過執行restart_jboss.sh腳本完成的:
2011-10-27_05:49:20 ./restart_jboss.sh
session

接着經過find命令在jack的home目錄下找到了該restart_jboss.sh腳本。eclipse

繼續查看了腳本內容,發如今一系列操做以後,最後執行了service jboss start 和 tail -f ./log/server.log 的動做,我懷疑是jack的非正常退出致使了JBoss的關閉,因而在虛擬機上作了測試。
結果證實確實如此,若是在執行了腳本以後直接關閉了客戶端窗口,而不是經過exit正常退出的話,JBoss會自動執行shutdown,狀況很是容易重現。
jsp

可是按道理說,咱們是使用的JBoss官方自帶的腳本,應該是與apache等其它軟件自帶的腳本同樣讓進程之後臺服務的方式運行的,不該該接收非後臺運行的session中斷信號。但通過反覆測試後,證實其並不是咱們想象中那樣值得信賴。測試

所以,咱們從此仍是最好加上nohup來確保JBoss不會接收session的中斷信號:nohup servicejboss start。

相關文章
相關標籤/搜索