【问题标题】:How do I make my server application run on an EC2 instance?如何让我的服务器应用程序在 EC2 实例上运行?
【发布时间】:2018-12-23 07:36:57
【问题描述】:
我开发了一个 Java 服务器(使用 Spring)并使用 FileZilla 将最终的可执行 JAR 上传到一个 EC2 实例。现在我想让它运行。
我已通过 SSH 连接并使用 java -jar server.jar 运行我的服务器,它工作正常(我已尝试访问它)。然而,一旦 SSH 连接关闭,服务器显然也会停止运行。
我怎样才能以这种方式启动我的应用程序以使其继续运行?
编辑:使用命令 screen 解释 here 我能够在后台运行它,因此它会继续运行。
【问题讨论】:
标签:
java
amazon-web-services
amazon-ec2
【解决方案1】:
问题不依赖于云,您必须执行配置才能在系统中将 jar 作为服务运行。
如果您使用 Elastic Bean Stalk 在下面的示例中将 systemctl 更改为 initctl。
- 将您希望运行的脚本命令放在 /usr/bin/demoscript.sh 中
- 记得使用 chmod +x 使脚本可执行。
- 创建以下文件:
/usr/lib/systemd/system/demo.service
[Unit]
Description=Demo Script
[Service]
Type=forking
ExecStart=/usr/bin/demoscript.sh
- 重新加载 systemd 服务文件:systemctl daemon-reload
- 检查它是否与 systemctl start demo 一起工作
【解决方案2】:
你需要让它在linux中作为守护进程运行。
有许多教程/模板可用于创建守护进程 shell 脚本。快速谷歌搜索显示 github 有很多模板,所以检查一下。