前言
在linux中部署java应用时,如果实例重启,需要人为手动执行应用的启动命令,window系统中可以修改自启动配置,linux系统中也可以通过脚本实现这一效果,当linux启动时,自动启动java应用。
实现步骤
1. 新建java启动的脚本
vim /opt/startJavaApp.sh
2. 在脚本中插入以下内容
#!/bin/bash
time=$(date "+%Y-%m-%d %H:%M:%S")
echo "${time} start java app running ..."
cd /usr/local/tomcat8.0/bin/
sh ./startup.sh
cd /usr/local/bootjar/
sh ./startup.sh
- tomcat应用:直接进入到tomcat的bin目录下,执行 startup.sh 脚本即可。
- jar应用:建议编辑jar启动脚本 jar启动脚本如下
vim /usr/local/bootjar/startup.sh
nohup java -jar xxxxxxxxx.jar >/dev/null 2>&1 &
3. 将脚本设置可执行权限
chmod 777 /usr/local/bootjar/startup.sh
chmod 777 /opt/opt/startJavaApp.sh
4. 编辑linux自定义启动脚本
vim /etc/rc.local
插入以下内容:
# start java app
source /etc/profile
/opt/startJavaApp.sh &
注意:自定义启动脚本中要先加载 /etc/profile ,是为了获取环境变量。/etc/rc.local的执行顺序要优先于/etc/profile, 而JAVA_HOME等环境变量通常配置在/etc/profile中,如果不先执行source 命令加载环境变量,会出现获取不到JAVA_HOME的异常。
最终效果
执行重启命令
reboot
查看java进程
ps -ef | grep java