centos7设置jar包开机自启动

时间:2023-03-25 17:59:52

在linux运行jar包的命令是

java  -jar  xxx.jar

如果想要在后台运行的话就加 &,终端退出后命令仍旧执行

java -jar xxx.jar & 这样退出当前远程登录界面这个jar包也会在后台运行;

一般加上nohup :英文全称no hang up(不挂起),用于在系统后台不断地运行命令,退出终端不会影响程序的运行;

hohup命令在默认情况下,会输出一个名叫nohup.out的文件到当前目录下,如果当前目录的nohup.out文件不可写,输出重定向到$HOME/nohup.out文件中

一般运行命令是

nuhup  java -jar xxx.jar >> /home/logs/xxx.log 2>&1  &

有一个需求就是开机自启动jar包,这样重新启动服务器后就不要手动执行这条命令了,那么我们就要把整个命令写成shell脚本


shell脚本xxx.sh如下 方法1写法

#! /bin/bash
source   /etc/profile   #加载java环境变量,java环境变量写在了 /etc/profile中
nuhup  java -jar xxx.jar >> /home/logs/xxx.log 2>&1  &

shell脚本xxx.sh如下 方法2写法

#! /bin/bash
export JAVA_HOME=/usr/local/jdk1.8   #根据自己的java环境路径填写

export PATH=$JAVA_HOME/bin:$PATH
cd  /home/xxx/xxx   #cd 到jar包的路径
nuhup  java -jar xxx.jar >> /home/logs/xxx.log 2>&1  &

cd /etc/rc.d chmod +x rc.local #添加rc.local可执行权限 vim rc.local 在文件的最后添加一行: sh /home/shell/xxx.sh xxx.sh也要添加可执行权限 chmod +x xxx.sh

重启机器后,查看java进程是否启动

ps -ef|grep java

或者使用netstat -tlnp 查到对应的应用端口是否启动

若程序启动,查看/home/shell/xxx.log的文件,日志是否正常

至此,linux环境的jar包开机自启动流程结束


注意事项:

如果脚本没有添加java环境变量

使用sh /home/xxx/xxx.sh 运行启动jar包脚本的命令是没有效果的,如果cd 到jar包的当前目录下运行就有效果