先创建一个.sh文件,我是创建在/home/java/jarAutoStart.sh
文件内容为jdk环境(不懂可以输入more /etc/profile进行查看复制),和jar包的启动命令,jar包要写绝对路径
JAVAHOME=/usr/java/jdk1.8.0_152
export CLASSPATH=$JAVAHOME
export PATH=$JAVAHOME/bin:$PATH
nohup java -jar /home/java/helping_enterprises_service-0.0.1-SNAPSHOT.jar --spring.profiles.active=pro > /home/java/nohup.out 2>&1 &
保存后给该文件权限
chmod +x /home/java/jarAutoStart.sh
然后编辑/etc/rc.local文件
在文件末尾加入(也就是你创建的.sh文件的绝对路径)
/home/java/jarAutoStart.sh
保存后给予/etc/rc.local权限
chmod +x /etc/rc.local
然后就可以了,系统重启后可以用以下查看java程序是否在运行
ps aux|grep jar
可能出现的问题:
- 如果无法运行,且日志文件中出现nohup:not found
则需要在
/etc/rc.local中加入本机PATH路径
PATH=/usr/java/jdk1.8.0_152/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/bin
touch /var/lock/subsys/local
/home/java/jarAutoStart.sh
- 这个自启动会导致slf4j的日志打印到 / 根路径,所以如果要把日志跟jar放一起,最好是log路径使用绝对路径