在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包的当前目录下运行就有效果