linux 如何启动jar

2018-06-26 10:10:31 husong_ 阅读数 23852

  当我们使用SpringBoot的方式开发好了我们的应用,放到我们的Linux服务器上准备上线,首先想到的可能就是通过 java -jar xxx.jar 的方式来运行我们的jar包,程序运行正常,但是窗口被锁定,当我们关闭窗口或Ctrl + C打断程序运行时,程序就会退出,这肯定不是我们想要的,下面我介绍几种Linux下后台启动jar包的方法

优化方法一:

java -jar xxx.jar &

& 表示后台运行,ssh窗口不被锁定,但是关闭窗口时,程序还是会退出

优化方法二:

nohup java -jar xxx.jar &
nohup 表示不挂断运行命令行,当账号退出或关闭终端时,程序仍然运行

当用 nohup 命令执行作业时,该作业的所有输出被重定向到nohup.out的文件中,除非另外指定了输出文件。

优化方法三:

nohup java -jar xxx.jar >/usr/local/temp.txt &

 > /usr/local/temp.txt 表示将所有启动的日志信息记录到temp.txt文件中

2019-03-02 15:15:31 lys1695227550 阅读数 669

在windows系统上打包的jar在linux上执行,发现关闭终端,ssh连接,jar执行就停止了

解决方案:

nohub工具安装,用作后台启动jar,不随终端关闭而关闭。

which nohup

没有则如下安装

yum install coreutils 

windows 使用rar压缩,在linux解压参考

 

在此给启动shell

#!/bin/bash
echo "************************************************************"
date
# ================================================================
#默认配置
encoding="UTF-8"
port=8080
while getopts ":p:e:" opt
do
    case $opt in
        p)
        echo "服务port的值$OPTARG"
	port=$OPTARG
        ;;
        e)
        echo "编码encoding的值$OPTARG"
	encoding=$OPTARG
        ;;
        ?)
        echo "未知参数"
        exit 1;;
    esac
done
${PWD}=pwd
echo $encoding
file=${PWD}/job-monitor.jar
echo $file
if [ -f $file ];then
	echo "job-monitor.jar存在,正在为您启动服务,若启动失败,请切换端口"
	#nohup 后台启动,终端关了不影响
	nohup java -Dfile.encoding=$encoding -jar job-monitor.jar --server.port=$port
else
	echo "job-monitor.jar不存在,正在退出。。。"
fi

参数默认配置如下

以上是一次练习中使用的一些东西,在此做个笔记,应该挺常用的。

2018-11-10 12:00:50 sinat_30777203 阅读数 3364

为什么需要注意

因为在我们启动项目的时候如果直接

	java -jar XXX.jar 	这样运行的话如果我们退出了远程服务器的bash窗口他就会自动关闭掉程序

所以我们需要改动一下

	nohup java -jar Xxx.jar > 日志文件名.log (这里可以随便写到时候会生成一个文件在启动的目录下可以查看启动日志) &

	然后jar包启动起来之后就Ctrl加z返回然后直接退出远程的服务器就行了