2012-03-02 71 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输出。

相关问题