700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > linux服务器运行停止Jar包Shell脚本编写

linux服务器运行停止Jar包Shell脚本编写

时间:2022-02-01 05:51:40

相关推荐

linux服务器运行停止Jar包Shell脚本编写

启动脚本:

#!/bin/sh#启动脚本,nohup方式表示后台运行jar包# 参数说明如下# -Dfile.encoding 设置文件编码方式# -Xms2000m JVM初始分配的堆内存# -Xmx2000m JVM最大允许分配的堆内存# persona-SNAPSHOT.jar jar文件的路径# >logs/console.log 实时输出控制台信息到指定文件 如不需要保存控制台信息则>/dev/nullnohup java -Dfile.encoding=UTF-8 -Xms2000m -Xmx2000m -jar persona-SNAPSHOT.jar >/dev/null 2>&1 &

java项目以jar包的方式启动时,application.yml中或者application.properties文件中难免会有一些中文出现,如果这个时候我们直接以java -jar jar包名称启动时,虽然启动能够成功,但是在加载配置文件时会出现意想不到的问题,这个时候我们只要改下启动jar包的命令即可

java -jar -Dfile.encoding=utf-8

2>&1 &解释:

关于 bash中0,1,2三个数字分别代表STDIN_FILENO标准输入、STDOUT_FILENO标准输出、STDERR_FILENO标准错误。

2>&1表示把标准错误2重定向到标准输出1中的,1前的&表示让bash将1解释为标准输出而不是文件1(2>1表示把标准错误2重定向好了文件1中)。

最后一个&,则是让bash在后台执行。

停止脚本:

#!/bin/bash# 停止脚本apiID=$(ps -ef |grep 'persona-SNAPSHOT.jar'|grep -v 'grep'| awk '{print $2}')# 如果进程不存在if test $apiID ;then# 杀死进程kill -9 $apiIDecho "进程已杀死"else# 提示不进程不存在echo "进程不存在"fi

其中:

ps -ef |grep 'persona-SNAPSHOT.jar'为通过管道查找persona-SNAPSHOT.jar的进程;

grep -v 'grep'表示忽略greppersona-SNAPSHOT.jar的进程;

awk '{print $2}'表示打印第二个字段,即获取进程ID。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。