我有一个运行的Java进程。如果我通过SSH启动进程并将命令传递给它工作正常,但如果我然后终止SSH会话,我将失去对该进程的“控制”。我如何重新获得对该过程的“控制”?它还在运行。
我知道进程ID。这可能还是我必须重新开始这个过程?
答案 0 :(得分:7)
你可能想要开始一个屏幕。
尝试在提示符下输入screen
。 (如果没有,请安装程序。)
示例运行:
$ ssh yourserver
Password:
$ screen # start the screen
$ java -jar YourApp.jar
output...
more output...
<Ctrl-A D> # detach process for later reattach
$ exit # exit your ssh session
第二天
$ ssh yourserver
Password:
$ screen -x # reattach process
$ java -jar YourApp.jar
output...
more output... # back to where we were yesterday.
输入man screen
了解详情。
答案 1 :(得分:1)
使用GNU screen
程序。
答案 2 :(得分:0)
无法重新连接已断开连接的进程的标准输入/输出。这不是Java应用程序特有的。
为避免陷入这种情况,请使用screen
实用程序或类似工具运行您的应用程序。