2018-09-09 19:32:56 daqiang012 阅读数 8840
  • Android Studio 开发详解

    Android Studio教程,该教材会详细介绍Android Studio如何使用,包括在Windows平台下载安装Android Studio、配置、代码重构、项目调试、jar包管理等。

    11359 人正在学习 去看看 郭宏志

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

查看某端口占用的线程的pid

netstat -nlp |grep :9181

发包:

nohup java -jar server-2.0.jar &

nohup java -jar server-2.0.jar >server.log &

查看后台进程:

ps aux

ps aux|grep server-2.0.jar

杀掉后台进程:

sudo kill -9 pid

kill -9 pid

 

2018-11-20 17:37:25 qq_34495753 阅读数 3243
  • Android Studio 开发详解

    Android Studio教程,该教材会详细介绍Android Studio如何使用,包括在Windows平台下载安装Android Studio、配置、代码重构、项目调试、jar包管理等。

    11359 人正在学习 去看看 郭宏志

#给文件以及子文件夹授权
chmod -R 777 文件夹名称

#查看端口被那个进程占用
lsof -i:端口号

#springboot项目在Linux下的启动命令,后台启动,不能用java -jar config-7.0.0.jar启动,否则关闭窗口线程也关闭

config-server.log是启动时创建日志
nohup java -jar config-server-7.0.0.jar > config-server.log 2>&1 

 

虚拟机访问ip地址接口

curl http://192.168.20.207:8001/create

jar包启动设置最大最小内存

java -Xmx1024m -Xms1024m -jar demo.jar 

vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M
-vmargs 说明后面是VM的参数,所以后面的其实都是JVM的参数了
-Xms128m JVM初始分配的堆内存
-Xmx512m JVM最大允许分配的堆内存,按需分配
-XX:PermSize=64M JVM初始分配的非堆内存
-XX:MaxPermSize=128M JVM最大允许分配的非堆内存,按需分配

 

find / -name 项目jar包名     //查询jar包在哪个路径下

jps -l 查看所有线程

nohup java -jar 项目jar  1>ten.log 2>&1 &  启动jar将日志写入ten.log中

tail -n 1000 -f ten.log    查看ten.log文件1000行日志

scp -r tourism-tenant.jar root@125.76.238.109:/opt/

      将 tourism-tenant.jar传到 125.76.238.109:/opt/

这个目录下
scp -r root@192.168.10.3:/opt/tourism-tenant.jar /local/
     将192.168.10.3:/opt/tourism-tenant.jar传到 local这个目录下

free -m 、free -h查询内存占用


mv /a/ten.jar .   将jar包移到当前文件夹

在文件中修改或查看后
shift+:   输入命令   w退出;wq保存退出

 

cp -r /a/b /c/

ls -ln查看文件日期


wget https://releases.hashicorp.com/consul/1.5.1/consul_1.5.1_linux_amd64.zip  虚拟机中直接下载


tree   win本地电脑查看树形图结构、查看当前页面树形图内容命令


安装nc查看端口
yum -y install nc

查看当前文件夹文件大小
 du -sh *

 

 

 

 

2019-08-21 10:40:11 weixin_42395975 阅读数 947
  • Android Studio 开发详解

    Android Studio教程,该教材会详细介绍Android Studio如何使用,包括在Windows平台下载安装Android Studio、配置、代码重构、项目调试、jar包管理等。

    11359 人正在学习 去看看 郭宏志

项目jar包启动的命令

当我们在linux系统里某个路径下创建了许多个jar包的文件夹后,我们可以通过 java -jar 命令脚本可以快速的启动我们的jar包以及实现全部启动及全部结束jar进程。

1.在linux系统中jar包存放位置

/opt/services/providers路径下是各个jar包存放的文件夹,同时将service.sh文件放入在该路径下,通过启动命令:
./service.sh start channeldemand 即可启动 YL-B-Channel-Demand-Provider.jar 包
channeldemand是 YL-B-Channel-Demand-Provider.jar在service.sh中配置的别名

如果需要启动该目录下的所有jar包,通过命令即可启动所有jar包:
./service.sh start all
在这里插入图片描述

2.service.sh中启动jar包具体的配置

只需要更改1.程序代码数组:每个jar包起别名 2.程序名称数组:具体每个jar包具体的名称 3.jar包数组:具体的jar包 4.jar包路径数组:jar包所在的路径地址。5.PROJECTDIR属性:具体的jar包文件夹所在路径,/opt/services/providers/KaTeX parse error: Expected '}', got 'EOF' at end of input: {PATHS[i]}。
修改这5个地方即可实现jar包配置。

#!/bin/bash
#####################################################Environment Setting#######################################################

#程序代码数组
APPS=(channelweb channelcorp channeldemand channelresume channeluser omsweb omscode omscorp omsdemand omsuser omszull oss publicweb search)

#程序名称数组

NAMES=(YL-B-Channel-WEB YL-B-Channel-Corp-Provider YL-B-Channel-Demand-Provider YL-B-Channel-Resume-Provider YL-B-Channel-User-Provider YL-B-BOS-WEB YL-B-Code-Provider YL-B-Corp-Provider YL-B-Demand-Provider YL-B-User-Provider YL-B-Zull YL-B-OSS-Provider YL-B-Public-WEB YL-B-Search-Provider)

#jar包数组

JARS=(YL-B-Channel-WEB.jar YL-B-Channel-Corp-Provider.jar YL-B-Channel-Demand-Provider.jar YL-B-Channel-Resume-Provider.jar YL-B-Channel-User-Provider.jar YL-B-BOS-WEB.jar YL-B-Code-Provider.jar YL-B-Corp-Provider.jar YL-B-Demand-Provider.jar YL-B-User-Provider.jar YL-B-Zull.jar YL-B-OSS-Provider.jar YL-B-Public-WEB.jar YL-B-Search-Provider.jar)

#jar包路径数组

PATHS=(BM-B-Channel-WEB BM-B-Channel-Corp-Provider BM-B-Channel-Demand-Provider BM-B-Channel-Resume-Provider BM-B-Channel-User-Provider BM-B-BOS-WEB BM-B-Code-Provider BM-B-Corp-Provider BM-B-Demand-Provider BM-B-User-Provider BM-B-Zull BM-B-OSS BM-B-Public-WEB BM-B-Search-Provider)

start(){
local APPNAME=
local NAME=
local CLASSNAME=
local PROJECTDIR=
local command="sh service.sh start"
local cmd2="$1"
local cmd2ok=0
local cnt=0
local okcnt=0
local PATH_LOG=
#local C_PID="0"
#for i in `seq 0 22`
echo "---------------------------开始启动服务..."
for(( i=0;i<${#APPS[@]};i++))
do
APPNAME=${APPS[$i]}
NAME=${NAMES[$i]}
CLASSNAME=${JARS[$i]}
PROJECTDIR=/opt/services/providers/${PATHS[$i]}
PATH_LOG=/opt/logs/$NAME
if [ "$cmd2" == "all" ] || [ "$cmd2" == "$APPNAME" ]; then
cmd2ok=1
C_PID="0"
cnt=0
#ps -ef | grep "$CLASSNAME" | awk '{print $2}' | while read pid
PID=`ps -ef |grep $(echo $CLASSNAME |awk -F/ '{print $NF}') | grep -v grep | awk '{print $2}'`	
#do 
#C_PID=$(ps --no-heading $pid | wc -l)
#if [ "$C_PID" == "1" ]; then
if [ -n "$PID" ]
then
echo "$APPNAME---$NAME:己经运行,PID=$PID"
#okcnt=$(($okcnt+1))
else
cd $PROJECTDIR
rm -f $PROJECTDIR/$nohup.out
command="nohup java -jar
					-XX:MetaspaceSize=256m \
					-XX:MaxMetaspaceSize=256m \
					-Xms512m \
					-Xmx512m \
					-Xmn256m \
					-Xss256k \
					-XX:SurvivorRatio=8 \
					-XX:+UseConcMarkSweepGC \
					$CLASSNAME"
exec $command >> $PROJECTDIR/nohup.out 2>&1 &
#ps -ef | grep "$CLASSNAME" | awk '{print $2}' | while read pid
#do
# C_PID=$(ps --no-heading $pid | wc -l)
#done
PID=`ps -ef |grep $(echo $CLASSNAME |awk -F/ '{print $NF}') | grep -v grep | awk '{print $2}'`	
cnt=0
#while (("$C_PID" == "0"))
while [ -z "$PID" ]
do
if (($cnt==30))
then
echo "$APPNAME---$NAME:$cnt秒内未启动,请检查!"
break
fi
cnt=$(($cnt+1))
sleep 1s
#ps -ef | grep "$CLASSNAME" | awk '{print $2}' | while read pid
#do
# C_PID=$(ps --no-heading $pid | wc -l)
#done
PID=`ps -ef |grep $(echo $CLASSNAME |awk -F/ '{print $NF}') | grep -v grep | awk '{print $2}'`	
done
okcnt=$(($okcnt+1))
echo "$APPNAME---$NAME:己经成功启动,PID=$PID"
#出借模块和总装模块启动较慢
if [ "$APPNAME" == "deal" ] ;
then
echo "$APPNAME---$NAME:启动中..."
sleep 30s
fi	
if [ "$APPNAME" == "dispatch" ] ;
then
echo "$APPNAME---$NAME:启动中..."
sleep 10s
fi
fi 
#done	
fi
done
if (($cmd2ok==0))
then
echo "command2: all|channelweb|channelcorp|channeldemand|channelresume|channeluser|omsweb|omscode|omscorp|omsdemand|omsuser|omszull" 
else
echo "---------------------------本次启动:$okcnt个服务"
fi
}

stop(){ 
local APPNAME=
local CLASSNAME=
local PROJECTDIR=
local command="sh service.sh stop"
local cmd2="$1"
local cmd2ok=0
#local C_PID="0"
local okcnt=0
echo "---------------------------开始停止服务..."
for(( i=0;i<${#APPS[@]};i++))
do
APPNAME=${APPS[$i]}
NAME=${NAMES[$i]}
CLASSNAME=${JARS[$i]}
PROJECTDIR=/opt/services/providers/${PATHS[$i]}
if [ "$cmd2" == "all" ] || [ "$cmd2" == "$APPNAME" ]; then
cmd2ok=1
#ps -ef | grep "$CLASSNAME" | awk '{print $2}' | while read PID 
PID=`ps -ef |grep $(echo $CLASSNAME |awk -F/ '{print $NF}') | grep -v grep | awk '{print $2}'`	
#do 
#C_PID=$(ps --no-heading $PID | wc -l)
#if [ "$C_PID" == "1" ]; then
if [ -n "$PID" ]
then
echo "$NAME:PID=$PID准备结束"
kill $PID
#C_PID=$(ps --no-heading $PID | wc -l)
#while (("$C_PID" == "1"))
PID=`ps -ef |grep $(echo $CLASSNAME |awk -F/ '{print $NF}') | grep -v grep | awk '{print $2}'`
while [ -n "$PID" ]
do
sleep 1s
#C_PID=$(ps --no-heading $PID | wc -l)
PID=`ps -ef |grep $(echo $CLASSNAME |awk -F/ '{print $NF}') | grep -v grep | awk '{print $2}'`
done
echo "$NAME:成功结束"
okcnt=$(($okcnt+1))
else
echo "$NAME:未运行"
fi 
#done 
fi
done
if (($cmd2ok==0))
then
echo "command2: all|channelweb|channelcorp|channeldemand|channelresume|channeluser|omsweb|omscode|omscorp|omsdemand|omsuser|omszull" 
else
echo "---------------------------本次共停止:$okcnt个服务" 
fi
}

case "$1" in 
start) 
start "$2"
exit 1
;; 
stop) 
stop "$2"
;; 
restart) 
stop "$2"
start "$2"
;; 
*) 
echo "command1: start|stop|restart" 
exit 1 
;; 
esac

3. 通过 nohup java -jar jar名 & 启动jar包

进入到jar包所在的文件夹下通过
tail -fn 200 nohup.out 可以查看相关jar包的启动日志。

java -jar -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -Xms512m -Xmx512m -Xmn256m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC YL-B-Channel-Demand-Provider.jar &
2018-09-05 15:12:36 LeegooWang 阅读数 668
  • Android Studio 开发详解

    Android Studio教程,该教材会详细介绍Android Studio如何使用,包括在Windows平台下载安装Android Studio、配置、代码重构、项目调试、jar包管理等。

    11359 人正在学习 去看看 郭宏志

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
查看某端口占用的线程的pid

netstat -nlp |grep :9181

linux后台启动jar包

阅读数 1802

没有更多推荐了,返回首页