美文网首页
liunx运行jar包命令几种方式+若依的自动启动脚本

liunx运行jar包命令几种方式+若依的自动启动脚本

作者: yichen_china | 来源:发表于2020-11-09 16:33 被阅读0次

Linux 运行jar包命令如下:

方式一:

java -jar XXX.jar

特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出

那如何让窗口不锁定?

方式二

java -jar XXX.jar &

&代表在后台运行。

特定:当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行。

继续改进,如何让窗口关闭时,程序仍然运行?

方式三

nohup java -jar XXX.jar &

nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行

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

方式四

nohup java -jar XXX.jar >temp.txt &

解释下 >temp.txt

command >out.file   

command >out.file是将command的输出重定向到out.file文件,即输出内容不打印到屏幕上,而是输出到out.file文件中。

可通过jobs命令查看后台运行任务

jobs

那么就会列出所有后台执行的作业,并且每个作业前面都有个编号。
如果想将某个作业调回前台控制,只需要 fg + 编号即可。

fg 23

我写的一个若依启动脚本

全部服务启动命令 ruoyicloud.sh -a start -v -2.2.0
单个服务启动命令 ruoyicloud.sh -a start -n ruoyi-getaway -v -2.2.0
全部停止命令 ruoyicloud.sh -a stop -v -2.2.0
单个停止命令 ruoyicloud.sh -a stop -n ruoyi-getaway -v -2.2.0
a=执行方法
n=服务名字
v=服务版本号
ruoyicloud.sh

#!/bin/bash
#执行方法 start|stop

mulu=$(dirname $(readlink -f $0))
a=
# 执行的名字,如果只对某个服务操作需要写服务名字不含版本号和.jar后缀。
n=
#执行版本号执行的时候会拼接成   名字-版本号.jar
v="-2.2.0"
# 'ruoyi-modules-job' 'ruoyi-visual-monitor'
arr=('ruoyi-gateway ruoyi-auth' 'ruoyi-modules-system' 'ruoyi-modules-gen')
while getopts ":v:n:a:" opt
do
    case $opt in
        n)
        n=$OPTARG
        arr=($OPTARG)
        echo "当前操作应用:$OPTARG"
        ;;
        v)
        v=$OPTARG
        echo "版本号:$OPTARG"
        ;;
        a)
        a=$OPTARG
        echo "操作方法:$OPTARG"
        ;;
        ?)
        echo "未知参数,-v 2.0.0 -n nginx -i start|stop"
        exit 1;;
    esac
done


function stopjar(){
    PID=$(ps -ef | grep $1.jar | grep -v grep | awk '{ print $2 }')
    if [ -z "$PID" ]
    then
    echo $1 is already stopped
    else
    echo "stop $1.jar kill -9 $PID"
    kill -9 $PID
    fi
}
function startjar(){
    nohup java -Dfile.encoding=utf-8 -jar $1.jar >$1.out 2>&1 &

}
function stop(){
        length=${#arr}
    echo "停止服务:$length"
    # for 遍历
    for item in ${arr[*]}
    do
     echo "stop" $item$v
     stopjar $item$v
    done
}

function start(){
    length=${#arr}
    echo "开始服务:$length"
    # for 遍历
    for item in ${arr[*]}
    do
     echo "start" $mulu/$item$v
     startjar $mulu/$item$v
    done
}
echo "$a"
$a

相关文章

网友评论

      本文标题:liunx运行jar包命令几种方式+若依的自动启动脚本

      本文链接:https://www.haomeiwen.com/subject/xibtbktx.html