2012-11-15 157 views
4

我有一個jar可執行文件,我試圖運行,直到在Linux服務器上停止。我試過看Java服務包裝API,但它真的很難,我甚至不確定這就是我想要的。有沒有一種方法可以在服務器上運行程序,以便在註銷程序時繼續運行?我使用ssh登錄到服務器和命令行來運行jar。謝謝!如何在服務器上自主運行程序,如何在服務器上無限運行java程序?

+0

謝謝大家!難怪stackoverflow讓這艘船搖滾,你們真棒! *已回答的問題* – user1747935

+1

我很高興你得到了答案,但最好在超級用戶上提問。 StackOverflow是*編程*問題... –

+0

對不起,感謝提示,我的意思是,它與編程有關。它關心在linux環境中運行java jar可執行文件,但我明白你的意思。 StackOverflow很快在Google上彈出,我有點想幫助其他有相同問題的人,但是謝謝! – user1747935

回答

7

運行:

nohup java -jar myjar.jar & 

末的符號將在一個新的派生進程運行它,所以你註銷後它會繼續。 nohup可防止其所有者註銷時掛起。

+2

我會在前面添加nohup –

+0

感謝您的提示,我將不得不檢查我的程序,以確保沒有發生 – user1747935

3

如果您有能力將服務器設置爲守護程序,您可以這樣做。如果沒有,您可以嘗試使用屏幕等程序創建虛擬終端。

sudo apt-get install screen 
screen java -jar myJar.jar 
如果你想reatach終端

screen -r 
+0

謝謝!哈哈我已經知道答案,但只是想拯救別人可怕的恐懼,我不得不去解決這個問題。感謝善良的靈魂! – user1747935

1

爲什麼是有! (請記住,這可能只能在服務器上運行,而不能在個人計算機上運行) 使用linux'screen'命令創建一個虛擬終端,在註銷後將繼續運行,說明爲here

基本上,使用:

$ screen 

啓動一個新的虛擬終端窗口。開始你的代碼,一旦你運行,輸入「control + a」,然後「d」從窗口中分離。一旦你分離,你可以註銷並且你的程序仍然在服務器上運行。要回到它,請鍵入:

$ screen -r 

然後您將回到您的程序。十分簡單! Instructions

2

如果您想將其作爲服務運行,請查看daemontools

它會在機器啓動時啓動程序,如果它崩潰就重新啓動它,當機器關閉時停止它。

在Ubuntu上只是一個易於獲取。

相關問題