2012-03-02 99 views
0

我在使用打包jar的遠程服務器上運行一個服務,問題是當我結束ssh會話時,它也殺死了進程(包括我需要的服務)。在遠程Ubuntu服務器上運行的Java Jar

我用cron腳本玩了一年左右,但沒有運氣,任何指針將不勝感激。

劉易斯

回答

4

您需要使用nohup命令,這防止被掛了會話結束時的過程。

nohup java -jar myjar.jar 

只是想我會補充一點,以迴應什麼馬文平託說。您還可以發送控制檯輸出到一個文件中,像這樣:

nohup java -jar myjar.jar >> logfile.log 2>&1 
+0

我不確定是否有區別,但我最終使用了'java -jar myjar.jar 2&1> log.out&' – LewisMc 2012-03-05 23:38:28

+0

如果在命令前沒有使用「nohup」即使您已添加'&'以使其在後臺運行,但在結束會話時仍掛斷。 – 3urdoch 2012-03-06 08:41:15

+0

yup,你是對的 – LewisMc 2012-04-04 22:39:09

3

可能需要更多的細節,但總的來說,我認爲你會想看看中NOHUP或daemonising處理從母公司分離貝它處理。

+0

nohup/path/to/java -jar /path/to/file.jar – 2012-03-02 17:04:48

+0

歡呼聲 - 如果你看到我的評論上面它結束了很容易.. – LewisMc 2012-03-05 23:39:33

4

當我需要在遠程機器上運行類似的長時間運行操作時,我通常會使用screen會話。

無論何時登錄或退出服務器,都可以輕鬆地加入或脫離會話。額外的好處是它可以在你回來時保存所有的stdout/stderr輸出。

相關問題