You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS EC2服务器Jar进程自停及Nginx配置失效问题求助

问题1:关闭终端后Jar进程终止

原因

直接在终端启动Jar进程时,进程属于当前终端会话的子进程,终端关闭(或SSH连接断开)时,会话会向子进程发送终止信号,导致Jar进程停止。

解决方案

  • 用nohup后台运行(快速临时方案):
    执行命令:
    nohup java -jar 你的应用.jar &
    
    nohup会让进程脱离终端控制,输出默认写入当前目录的nohup.out文件;&让进程在后台运行。
  • 用screen/tmux维持会话(适合需要随时重新连接查看进程的场景):
    1. 安装screen:apt install screen(Debian/Ubuntu)或yum install screen(CentOS/RHEL)
    2. 启动screen会话:screen
    3. 在会话里启动Jar进程:java -jar 你的应用.jar
    4. 按下Ctrl+A+D detach会话,此时关闭终端不影响进程
    5. 重新连接会话:screen -r
  • 注册为systemd服务(推荐生产环境,持久化+开机自启):
    1. 创建服务文件:vi /etc/systemd/system/你的应用.service
    2. 写入以下内容(替换占位符):
      [Unit]
      Description=你的Java应用描述
      After=network.target
      
      [Service]
      User=ec2-user # 替换为运行应用的用户,比如ec2-user或ubuntu
      ExecStart=/usr/bin/java -jar /path/to/你的应用.jar # 替换为Java路径和Jar文件绝对路径
      Restart=always # 进程意外终止时自动重启
      RestartSec=5 # 重启间隔5秒
      
      [Install]
      WantedBy=multi-user.target
      
    3. 刷新systemd配置:systemctl daemon-reload
    4. 设置开机自启:systemctl enable 你的应用
    5. 启动服务:systemctl start 你的应用
      可用systemctl status 你的应用查看状态,journalctl -u 你的应用查看日志。
问题2:重启服务器后Nginx配置失效

原因

  • 配置文件未保存到Nginx实际加载的路径
  • 自定义配置未启用(比如未软链到sites-enabled目录)
  • Nginx未设置开机自启,重启后未自动加载配置

解决方案

  • 确认配置文件路径:
    执行nginx -V查看Nginx的配置加载路径,重点看--conf-path(主配置文件)和--include参数(额外配置目录)。通常自定义配置放在/etc/nginx/conf.d/(后缀.conf会自动加载)或/etc/nginx/sites-available/(需要软链到sites-enabled)。
  • 启用自定义配置:
    如果用sites-available/sites-enabled结构,执行:
    ln -s /etc/nginx/sites-available/你的配置.conf /etc/nginx/sites-enabled/
    
  • 验证配置语法并重启Nginx:
    修改配置后先测试语法:nginx -t,输出test is successful再重启:systemctl restart nginx
  • 设置Nginx开机自启:
    执行:systemctl enable nginx,这样服务器重启后Nginx会自动启动并加载正确的配置。
  • 检查配置是否被覆盖:
    确保修改的是实际生效的配置文件,避免修改了副本或临时文件。

内容的提问来源于stack exchange,提问作者Burak Öztürk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 19:42:13