Linux下Java项目开机自动启动

1、在Linux上设置开机启动Java程序,例如:test.jar在Linux上启动Java程序的命令:

nohup java -jar test.jar >/dev/null 2>&1 &

这样启动可以避免输出日志到控制台。

 

2、可以将程序启动的指令做成一个shell脚本,简单的做法创建一个test.sh文件,内容如下:

创建一个 test.sh 可执行文件(我是放在.jar目录下):

vim /home/ruoyi/run.sh
#!/bin/bash

JAVA_HOME=/usr/local/java/jdk1.8.0_161
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/java/test.jar > /dev/null 2>&1 &
  • nohup可以保证程序在后台运行,你可以进行其他操作,甚至可以退出终端。
  • /dev/null 2>&1 这条命令的意思是将标准输出和错误输出全部重定向到/dev/null(可以看成黑洞)中,也就是将产生的所有信息丢弃

2.1、保存退出,并赋予可执行权限

chmod +x /home/ruoyi/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/ruoyi/run.sh

3.1、确定有运行这个文件的权限

chmod +x /etc/rc.d/rc.local

 

4、如果你已经将Java程序配置为开机启动,并且希望在重启系统后自动启动Java程序,你无需做任何事情,因为Java程序已经配置为开机启动了。

如果你想手动重启Java程序,可以使用以下命令:

4.1、找到Java程序的进程ID(PID):

ps -ef | grep test.jar

 

 4.2、杀掉Java程序的进程:

kill -9 PID(1068

4.3、重新启动Java程序:

nohup java -jar /home/ruoyi/test.jar >/dev/null 2>&1 &

// nginx重启
./nginx -s reload

这样,你就可以手动重启Java程序了。

posted @ 2022-08-05 16:34  爱学习的疯倾  阅读(3408)  评论(0)    收藏  举报