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

EC2 User-data脚本无法启动Java应用问题求助

EC2 Ubuntu实例User Data启动Java应用失败的解决方法

原脚本的问题

  • sudo su会启动交互式root shell,后续的java -jar命令无法自动执行
  • 前台运行java -jar会导致User Data脚本执行完毕后,进程随会话终止被杀死
  • 未处理Java路径环境变量、jar包权限等潜在问题

修正后的User Data脚本

#!/bin/bash
# 切换目录失败则终止脚本,避免后续命令在错误路径执行
cd /home/ubuntu || exit 1

# 以root权限后台运行应用,输出重定向到日志文件便于排查
sudo nohup java -jar HelpDesk-0.0.1-SNAPSHOT.jar > app.log 2>&1 &

关键优化说明

  • 移除sudo su,改用sudo直接执行命令,规避交互式shell的执行阻断问题
  • 用nohup+&让进程脱离当前会话,确保User Data执行完成后应用仍能持续运行
  • 添加目录切换失败的终止逻辑,减少无效执行
  • 重定向输出到日志文件,方便后续查看启动状态和错误信息

排查验证步骤

  1. 查看User Data执行日志:cat /var/log/cloud-init-output.log,定位脚本执行的具体错误
  2. 检查jar包权限:执行sudo chmod 755 /home/ubuntu/HelpDesk-0.0.1-SNAPSHOT.jar,确保有可读可执行权限
  3. 确认Java环境:在实例上运行java -version,若User Data中无法识别Java,可改用绝对路径如/usr/bin/java

内容的提问来源于stack exchange,提问作者LuciannoDev

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 03:22:38