java - AWS - Ubuntu 用户 session 停止 Spring Boot 应用程序

标签 java amazon-web-services spring-boot ubuntu amazon-ec2

这是我在 AWS 上的第一次部署。我在 EC2 AWS 实例上有一个 Spring Boot API。为了运行我的 API,我运行命令“java -jar app.jar”,这可以运行一段时间,但是当 ubuntu 用户的 session 被注销时,我的 API 会停止。然后我必须一遍又一遍地运行命令'java -jar app.jar'等等......

Aug 17 21:17:01 ip-172-32-12-59 CRON[117596]: pam_unix(cron:session): session opened for user root by (uid=0)
Aug 17 21:17:01 ip-172-32-12-59 CRON[117597]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Aug 17 21:17:01 ip-172-32-12-59 CRON[117596]: pam_unix(cron:session): session closed for user root
Aug 17 21:21:39 ip-172-32-12-59 sshd[117226]: pam_unix(sshd:session): session closed for user ubuntu
Aug 17 21:21:39 ip-172-32-12-59 systemd-logind[452]: Session 26 logged out. Waiting for processes to exit.
Aug 17 21:21:39 ip-172-32-12-59 systemd[1]: session-26.scope: Succeeded.
Aug 17 21:21:39 ip-172-32-12-59 systemd-logind[452]: Removed session 26.
我该怎么做才能让我的 API 在 ubuntu 用户注销时不会停止?

最佳答案

您应该将应用程序作为服务运行。
你可以引用这篇文章
https://dzone.com/articles/run-your-java-application-as-a-service-on-ubuntu

sudo vi /etc/systemd/system/my-webapp.service
[Unit]
Description=My Webapp Java REST Service
[Service]
User=ubuntu

WorkingDirectory=/home/ubuntu
ExecStart=/home/ubuntu/my-webapp

SuccessExitStatus=143
TimeoutStopSec=10
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target
vi/home/ubuntu/my-webapp
#!/bin/sh
sudo /usr/bin/java -jar app.jar
您可以使用 which java 找到 java 位置.
chmod +x /home/ubuntu/workspace/my-webapp
sudo systemctl daemon-reload
sudo systemctl enable my-webapp.service
sudo systemctl start my-webapp
sudo systemctl status my-webapp

关于java - AWS - Ubuntu 用户 session 停止 Spring Boot 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68824492/

相关文章:

获取mediaPlayer.getCurrentPosition时随机出现java.lang.illegalStateException

amazon-web-services - 为什么我无法在对等互连后从另一个 VPC 中的 EC2 实例连接 AWS RDS 实例

amazon-web-services - 暂停 Elastic Beanstalk 应用程序环境?

spring-boot - @SpringBootTest 注解导致 StackOverflowError

spring - 如何将 Spring Controller 映射到它们的 thymeleaf View (intellij14)

java - Spring Boot 登录登录返回 401 并匹配凭据

java - 解析 csv 时保留引号

java - 仅使用 XSD 的 JAX WS WebService 实现

java - 如何在 JXPath 表达式中使用字符串的子字符串

javascript - 部署到 AWS 时出现 React 应用程序路由问题