2012-07-30 49 views
0

我有一個IRC bot,它接受來自用戶的命令來託管特定的遊戲服務器。但是,服務器啓動大約半小時到一個小時後,服務器就凍結了。服務器使用Java的運行時執行命令運行。java執行的程序似乎超時了嗎?

有沒有辦法讓服務器保持運行狀態,直到用戶手動終止服務器?

如果重要,操作系統是CentOS 6,64位。

這裏是通過傳遞給Java的運行時exectute一個例子字符串命令:http://pastebin.com/mn8qWf3E

編輯:我不知道,如果進程掛起或崩潰,因爲我沒有檢查。我已經運行了服務器,並會檢查一次,我發現了。

謝謝!

+1

執行從[runtime.exec info]鏈接的文章的建議。頁面(http://stackoverflow.com/tags/runtime.exec/info)。如果這不能解決問題,或者提供足夠的信息來解決問題,請發佈[SSCCE](http://sscce.org/)。因爲這是我們只能猜測它爲什麼失敗,我不喜歡猜測。 – 2012-07-31 00:31:38

回答

0

只是一個猜測..確保你繼續從java進程讀取服務器的輸出,或將它重定向到某個地方。否則當它在標準輸出中打印某些內容時會阻塞或出現錯誤

+0

我想我必須輸出到一個文件,而不是使用System.out.println(),如果我想有多個服務器? – Ivan 2012-07-31 00:12:10

+0

嗯,當你做一個運行時執行,它會返回一個進程,我認爲,它將有一個get-method標準輸出和錯誤。你需要繼續閱讀,以確保緩衝區清空。 – 2012-07-31 00:18:15