我有一个 java 程序需要在其他机器上通过 ssh 编译和运行。该程序占用不到 512MB
。
但是当我在 linux 上运行这个程序时(通过 ssh 连接),我的进程被终止了。
一旦从这些值计算出结果,程序将按以下方式释放内存:\
setSparseMatrix(new SparseMatrix(n))
我认为 java 垃圾收集器可以自动重新获得此内存,因为不存在指向该旧矩阵的指针。
附加信息:
我在 eclipse 中测试了这个程序,它可以在内存为 512 MB
的 pc 上轻松运行。
还有一件事它有时有效,有时无效。\
那么谁能告诉我如何才能看到我的程序被杀死的原因?
最佳答案
当您从 putty 断开 SSH 连接时,您的进程可能会被终止。
您应该使用 nohup
运行您的 Java 进程命令。
所以类似于:nohup java <the rest of your command line> &
将确保当您的 SSH 命令终止并且终端向其发送 SIG-HUP 和 &
时,您的进程不会挂起并终止。使其在后台运行。
您可能希望将程序的标准输出通过管道传输到某个日志文件,以防您想检查其输出是什么。
关于java - 进程在 Linux 中通过 putty 的 ssh 连接被杀死,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53355936/