每当我注销我的服务器时命令停止

Command stops whenever I log out of my server

我有一个 java 程序(基于文本的无 GUI),我已经编写并编译并上传到服务器。

我 运行 它与 java -cp myjar.jar mypackage.MyClass 启动它 运行 正在处理一个包含 20,000,000 多个条目的数据文件并将输出打印到 System.out。我已经计算出处理数据需要很长时间,我不想让我的笔记本电脑在数字 c运行ching...

的 10 天内打开

然而,当我注销 shell 时,进程停止。

如何执行命令并在不停止的情况下注销?那叫什么?

我正在使用亚马逊 Ubuntu EC2 服务器。我使用来自 Mac OSX 的证书和终端登录。服务器似乎正在使用 bash shell.

希望有人能帮帮我! 杰森.

您可以使用nohup

nohup java -cp myjar.jar mypackage.MyClass > yourLogFile.log &

-----> http://ss64.com/bash/nohup.html

考虑使用 screen 而不是 nohup。它允许您创建一个即使在 logout/disconnect 之后仍然存在的虚拟终端。当您重新连接到服务器时,您可以立即跳转到上次打开的 screen 会话。

服务器上的典型工作流程:

  1. 键入 screen(您可能需要按 space 才能离开介绍页面)
  2. 输入您要离开的命令 long-running(您的 java 程序,或 OS 升级)
  3. ctrl a+d 离开屏幕(确保按住 ctrl)

到 re-enter 屏幕只需使用 screen -r,您将看到之前的终端和您离开它时的所有 运行 程序。