![](/img/trans.png)
[英]How do I route SSL traffic through an AWS "Application Load Balancer" to an EC2 instance
[英]How do I make my server application run on an EC2 instance?
我開發了一個 Java 服務器(使用 Spring)並使用 FileZilla 將最終的可執行文件 JAR 上傳到 EC2 實例。 現在我想讓它運行。
我已經通過 SSH 連接並使用java -jar server.jar
來運行我的服務器,並且它有效(我已經嘗試訪問它)。 然而,一旦 SSH 連接關閉,服務器顯然也會停止運行。
我怎樣才能以這種方式啟動我的應用程序以使其保持運行?
編輯:使用此處解釋的命令screen
,我能夠在后台運行它,因此它一直在運行。
問題不在於雲,它取決於在系統中將jar作為服務運行所需的配置。 如果您使用的是Elastic Bean Stalk ,請在以下示例中將systemctl更改為initctl 。
/usr/lib/systemd/system/demo.service
[Unit]
Description=Demo Script
[Service]
Type=forking
ExecStart=/usr/bin/demoscript.sh
您需要使其在Linux中作為守護進程運行。
有許多教程/模板可用於創建守護程序shell腳本。 快速的Google搜索顯示github有很多模板,因此請檢查一下。
您可以嘗試使用 systemd,它是一個 Linux 服務管理器。 您可以使用它在后台運行您的服務。
為此,您需要首先創建一個描述 systemd 應如何管理您的服務的unit file
(更多信息,請點擊此處)。
sudo vim /etc/systemd/system/your-application.service
您的文件可能看起來像這樣
[Unit]
Description=Java Application as a Service
[Service]
User=ec2-user
#change this directory into your workspace
#mkdir workspace
WorkingDirectory=/home/ec2-user/workspace
#path to the executable bash script which executes the jar file
ExecStart=/bin/bash /home/ec2-user/workspace/your-script.sh
SuccessExitStatus=143
TimeoutStopSec=10
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
然后在您的主目錄/home/ec2-user/workspace
中,您可以創建 bash 腳本來運行您的 java 應用程序。
sudo nano your-script.sh
您的腳本可能如下所示
#!/bin/sh
java -jar your-application.jar
然后您需要做的就是使用命令啟動服務
sudo systemctl enable your-application.service
sudo systemctl start your-application.service
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.