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

Process running on EC2 instance stops when get disconnected from EC2

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

java -jar <jar_file_name> |& tee output_file.txt

这个过程应该 运行 几天。但是当我与 EC2 实例断开连接(SSH 会话关闭)时,进程停止。如何在断开连接时使进程 运行ning 生效? (或关闭我的本地机器)

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

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

创建新会话:

screen -S java_session

(运行 你的 java 脚本在这里。)

分离(返回 SSH):

CTRL + A + D

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

screen -r

有关屏幕的更多信息:Documentation

尝试将 nohup 与作业启动命令一起使用,nohup 最适合长 运行 作业,无论它运行的 SSH 会话如何。

nohup java -jar cloud-config-server/target/*.jar > logs/cloud-config-server.log 2>&1 &

文档:https://linuxize.com/post/linux-nohup-command/