Java项目icarus.jar
放在Linux文件夹/home/java/icarus
里面。该文件夹下又有start.sh
和shutdown.sh
两个脚本来启动和关闭icarus.jar
项目。
如果不使用脚本,使用命令
java -jar icarus.jar --config.profile=test --spring.cloud.config.uri=http://10.66.67.163:8888 --port=8083
可以启动项目,但是不能关闭shell,不然的话程序也就停止了。要关闭项目,可以使用Ctrl+c
,回到命令行,即可停止程序。
若要执行脚本文件,需给脚本赋权限,执行chmod +x filename(或chmod 755 filenme)
命令来获得可执行权限
启动脚本
-
启动项目命令:
./start.sh icarus.jar
-
start.sh
内容#!/bin/bash file=$(basename $1) nohup java -jar $file --config.profile=test --spring.cloud.config.uri=http://10.26.61.123:8888 --port=8083 > /dev/null 2>&1 & tail -f logs/spring.log ~
-
详解
-
#!/bin/bash
:指此脚本使用/bin/bash来解释执行 -
$(basename $1)
:获取第一个参数。./start.sh icarus.jar
的第一个参数为icarus.jar
-
nohup
:不挂断地运行命令。 -
> /dev/null 2>&1
:``> /dev/null的作用是将标准输出1重定向到/dev/null中。/dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞”。
> /dev/null 2>&1` 把标准输出1重定向到“黑洞”,还把错误输出2重定向到标准输出1,也就是标准输出和错误输出都进了“黑洞” -
&
:在后台运行。一般nohup
和&
两个一起用 -
tail -f logs/spring.log
:监视logs/spring.log
文件的尾部内容(默认10行,相当于增加参数 -n 10),刷新显示在屏幕上。退出,按下CTRL+C
。
-
停止脚本
-
停止项目命令:
./shutdowm.sh icarus.jar
-
shutdowm.sh
内容#!/bin/bash file=$(basename $1) ps -ef | grep $file |grep -v grep | awk '{print $2}' |xargs kill -9
-
详解
-
ps -ef
:显示所有的进程,其中后面的e是显示结果的意思,f是显示完整格式 -
|
:管道符“|”用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入 -
grep $file
:查找含有指定文本行,即查找含有$file
的文本的行 -
grep -v grep
:grep -v
是反向查找,grep -v grep
就是查找不含有 grep 字段的行 -
awk '{print $2}'
:提取输入的第二列,而第二列是进程的PID -
xargs
:通过管道接受字符串,并将接收到的字符串通过空格分割成许多参数(默认情况下是通过空格分割) 然后将参数传递给其后面的命令(即kill -9
),作为后面命令的命令行参数。即进程的PID -
kill -9
:强制杀死该进程。后面的参数已经通过xargs
传送过来
-
这里只是记录了启动停止部署在Linux上的Java项目基本脚本,我也不懂这些,只是学了如何在Linux上部署公司的项目,看到不懂的就去查一查,对自己的无知感到很无奈。
网友评论