与 EC2 断开连接时,EC2 实例上运行的进程会停止

Mr.*_*ent 3 java jar process amazon-ec2 amazon-web-services

我正在 EC2 实例上运行 Java CLI 实用工具。它执行一些过程并将结果写入控制台和日志文件。我使用以下命令运行它:

java -jar <jar_file_name> |& tee output_file.txt
Run Code Online (Sandbox Code Playgroud)

此过程应该运行几天。但是,当我与 EC2 实例断开连接(SSH 会话关闭)时,该过程就会停止。即使断开连接,如何使进程继续运行?(或关闭我的本地机器)

小智 5

您正在寻找的是命令Screen。这允许您创建一个虚拟的、分离的终端会话,即使您的 SSH 连接关闭,该会话也会保留。屏幕的进程继续在后台正常执行。

(并非所有系统上都预安装了 Screen。有关安装说明,请参阅您的发行版文档)。

创建新会话:

screen -S java_session

(在此处运行您的 Java 脚本。)

分离(返回 SSH):

CTRL + A + D

重新连接(在新的 SSH 会话上):

screen -r

有关屏幕的更多信息:文档