我在使用打包jar的遠程服務器上運行一個服務,問題是當我結束ssh會話時,它也殺死了進程(包括我需要的服務)。在遠程Ubuntu服務器上運行的Java Jar
我用cron腳本玩了一年左右,但沒有運氣,任何指針將不勝感激。
劉易斯
我在使用打包jar的遠程服務器上運行一個服務,問題是當我結束ssh會話時,它也殺死了進程(包括我需要的服務)。在遠程Ubuntu服務器上運行的Java Jar
我用cron腳本玩了一年左右,但沒有運氣,任何指針將不勝感激。
劉易斯
您需要使用nohup命令,這防止被掛了會話結束時的過程。
nohup java -jar myjar.jar
只是想我會補充一點,以迴應什麼馬文平託說。您還可以發送控制檯輸出到一個文件中,像這樣:
nohup java -jar myjar.jar >> logfile.log 2>&1
可能需要更多的細節,但總的來說,我認爲你會想看看中NOHUP或daemonising處理從母公司分離貝它處理。
nohup/path/to/java -jar /path/to/file.jar – 2012-03-02 17:04:48
歡呼聲 - 如果你看到我的評論上面它結束了很容易.. – LewisMc 2012-03-05 23:39:33
當我需要在遠程機器上運行類似的長時間運行操作時,我通常會使用screen會話。
無論何時登錄或退出服務器,都可以輕鬆地加入或脫離會話。額外的好處是它可以在你回來時保存所有的stdout/stderr輸出。
我不確定是否有區別,但我最終使用了'java -jar myjar.jar 2&1> log.out&' – LewisMc 2012-03-05 23:38:28
如果在命令前沒有使用「nohup」即使您已添加'&'以使其在後臺運行,但在結束會話時仍掛斷。 – 3urdoch 2012-03-06 08:41:15
yup,你是對的 – LewisMc 2012-04-04 22:39:09