Linux下Java项目开机自动启动
1、在Linux上设置开机启动Java程序,例如:test.jar在Linux上启动Java程序的命令:
nohup java -jar test.jar >/dev/null 2>&1 &
- /dev/null 2>&1 这条命令的意思是将标准输出和错误输出全部重定向到/dev/null(可以看成黑洞)中,也就是将产生的所有信息丢弃。这样启动可以避免输出日志到控制台。
2、可以将程序启动的指令做成一个shell脚本,简单的做法创建一个test.sh文件,内容如下:
2.1. 创建一个 test.sh 可执行文件:
vim /home/run.sh
#!/bin/bash
JAVA_HOME=/usr/local/java/jdk1.8.0_221
CLASSPATH=.:%JAVA_HOME%/lib:%JAVA_HOME%/jre/lib
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export PATH CLASSPATH JAVA_HOME
nohup java -jar /usr/local/app/visitor/visitor-api.jar > /usr/local/app/visitor/sys.log 2>&1 &
nohup java -jar /usr/local/app/parking/parking-api.jar > /usr/local/app/parking/sys.log 2>&1 &
nohup java -jar /usr/local/app/uip-gateway/uip-gateway.jar > /usr/local/app/uip-gateway/sys.log 2>&1 &
nohup java -jar /usr/local/app/uip/uip-api.jar > /usr/local/app/uip/sys.log 2>&1 &
- nohup可以保证程序在后台运行,你可以进行其他操作,甚至可以退出终端。
- sys.log 日志地址,也就是将产生的所有信息记录在日志
2.2. 保存退出,并赋予可执行权限
chmod +x /home/run.sh
3、最重要的一步就是修改Linux的开机启动配置文件(/etc/rc.d/rc.local)
vim /etc/rc.d/rc.local
# !/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
/home/run.sh
3.1、确定有运行这个文件的权限
chmod +x /etc/rc.d/rc.local