简易shell脚本启动jar包
可参考博客:
- Shell脚本中$0、$?、$!、$$、$*、$#、$@等的意义 https://blog.csdn.net/csgd2000/article/details/80396996
- shell脚本[] [[]] -n -z 的含义解析 https://blog.csdn.net/keep_lcm/article/details/80551435
- shell基本运算符 | 菜鸟教程 https://blog.csdn.net/keep_lcm/article/details/80551435
#!/bin/bash
APP_NAME=sb_security-0.0.1-SNAPSHOT.jar
usage() {
echo "case: sh run.sh [start|stop|restart|status]"
echo "请类似这样执行 ./*.sh start or ./*sh restart"
exit 1
}
# 判断当前服务是否已经启动的函数
is_exist(){
echo "执行 is_exist 方法"
pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' ` #根据ps 命令查询当前服务的进程号 赋值给pid"
if [ -z "${pid}" ]; then #判断pid是否为空
echo "pid 等于null"
return 1
else
echo "pid 不等于null"
return 0
fi
}
start(){
is_exist
if [ $? -eq "0" ]; then # [$? -eq "0"] 说明pid不等于空 说明服务正在运行中,将进程号打印出来
echo "${APP_NAME} running. pid=${pid}"
else
nohup java -jar ../lib/$APP_NAME > log.file 2>log.error & # 说明pid为空 执行java -jar 命令启动服务
echo "${APP_NAME} started"
fi
}
stop(){
echo "执行 stop 方法"
is_exist
if [ $? -eq "0" ]; then # [$? -eq "0"] 说明pid不等于空 说明服务正在运行中,将进程号杀死
kill -9 $pid
echo "${pid} stopped"
else
echo "${APP_NAME} not running"
fi
}
status(){
echo "执行 status 方法"
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} running. Pid is ${pid}"
else
echo "${APP_NAME} not running"
fi
}
# 重启命令其实就是先执行关闭命令 再执行重启命令
restart(){
stop
start
}
# 这里的$1 取的是当前输入命令 的第二个参数 ./start.sh start
case "$1" in
"start")
start
;;
"stop")
stop
;;
"status")
status
;;
"restart")
restart
;;
*)
usage
;;
esac
case "$1" 取第二个参数 即./run.sh start 中的start
输入./run.sh start 则会调用 start函数 is_exist函数 pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' ` #取服务的进程号 赋值给pid if [ -z "${pid}" ]; then#判断pid是否为空
return 1
else
return 0
fi is_exist
if [ $? -eq "0" ]; then # $? 取最后运行的命令的结束代码[返回值], 判断is_exist返回值与 0比较

简易shell脚本启动jar包的更多相关文章
- linux下shell脚本启动jar包
本文采用的jar包是通过idea下maven打包的springboot项目. 写这个shell脚本是为了在linux下方便启动jar包时不用输入太多的shell命令,将启动脚本的一系列shell命令整 ...
- 通过shell脚本排查jar包中类冲突
当我们在线上运行项目时,依赖很多jar包,有时候某个类的全限定名,在多个包中出现,而某个包中的类的方法没有,而且在类加载时,刚好加载了这个类,可能会报找不到方法,或者找不到类的异常,这种情况就可能是类 ...
- 一个简单的Linux启动jar包的shell脚本
背景: 项目设备端需要运行jar包程序与服务端进行socket连接并发送数据,每次启动进程时,都需要在Linux终端输入启动jar包的命令,比较繁琐,随之尝试将启动jar包的命令写入shell脚本文件 ...
- linux下shell脚本执行jar文件
最近在搞一个shell脚本启动jar文件个关闭jar文件的东东.搞得我都蛋疼了.今天晚上终于弄好了 话说,小弟的linux只是刚入门,经过各方查资料终于搞定了.话不多说,下面开始上小弟写的shell脚 ...
- Linux下shell通用脚本启动jar(微服务)
Linux下shell通用脚本启动jar(微服务) vim app_jar.sh #!/bin/bash #source /etc/profile # Auth:Liucx # Please chan ...
- Linux部署项目 shell脚本启动 及 Centos7开放指定端口
我们首先要在linux上安装好jdk tomcat mysql 这些基本环境,这些可以在楼主的 Linux入门 里面找到. linux部署spring项目 1. 右击项目,maven ...
- 把封装脚本做成jar包
前提: eclipse, selenium, maven 把二次封装过的脚本做成jar包, 这样可以在新建工程里也调用封装过的方法. 实现步骤: 1. project 右键 => maven = ...
- 使用 "java -jar"命令启动jar包时报不支持的jdk版本异常
在使用java -jar 命令启动一个jar包的时候,提示版本不支持: [root@hadoop01 eureka-server-master]# java -jar xuebusi-eureka-s ...
- java命令启动jar包
本人对这些命令也是一知半解,记录备用. 1. 使用java命令行执行java文件 # 设置命令窗口标题 title test1 # 开启输出 @echo on # 设置环境变量JAVA_HOME se ...
随机推荐
- IntelliJ:下载第三方库
学习自:(6条消息) IDEA中第三方软件包安装步骤_Li某人_初学者-CSDN博客 1.下载对应的软件包:以commons-logging为例 2.复制这个jar包到项目根目录下的lib目录下(li ...
- Java序列化流的奇妙之旅
Java序列化流有何奇妙之处呢?通过一个个案例逐一感受序列化流. !!!好戏在后头!!! 1.IO流读写文件 先从一个普通文件读写字符串开始讲起. 例子:输出字符串到文件,再从文件中读取字符串 在某一 ...
- 二、python数据类型详解
基本概念 迭代(iteration):如果给定一个list或tuple,我们可以通过for循环来遍历,这种遍历我们称为迭代(iteration) 可变:value改变,id不变,可变类型是不可hash ...
- JZ-041-和为 S 的连续正数序列
和为 S 的连续正数序列 题目描述 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100.但是他并不满足于此,他在想究竟有多少种连续的正数序列 的和为100( ...
- CLR的GC工作模式介绍(Workstation和Server)
CLR的核心功能之一就是垃圾回收(garbage collection),关于GC的基本概念本文不在赘述.这里主要针对GC的两种工作模式展开讨论和研究. Workstaction模式介绍 该模式设计的 ...
- 实战:Spring AOP实现多数据源动态切换
需求背景 去年底,公司项目有一个需求中有个接口需要用到平台.算法.大数据等三个不同数据库的数据进行计算.组装以及最后的展示,当时这个需求是另一个老同事在做,我只是负责自己的部分. 直到今年回来了,这个 ...
- Linux命令大全(查看日志)
1.查看日志常用命令 tail: -n 是显示行号:相当于nl命令:例子如下: tail -100f test.log 实时监控100行日 ...
- MySQL启动报错Failed to open log (file 'D:\phpStudy\PHPTutorial\MySQL\data\mysql_bin.000045', errno 2)
MySQL报错 191105 9:39:07 [Note] Plugin 'FEDERATED' is disabled. 191105 9:39:07 InnoDB: The InnoDB memo ...
- phpstrom2019版永久破解
前言 : 首先进入软件,如果软件需要激活才能进入,可以在idea.medeming.com/jets,中下载激活码,以方便进入 然后按照下面的步骤操作 1.下载补丁 链接:https://pan.ba ...
- Git 常见错误 之 error:error: src refspec main does not match any/ error: failed to push some refs to 简单解决
错误产生的原因:Github 工程默认名为了 main 由于受到"Black Lives Matter"运动的影响,GitHub 从今年 10 月 1 日起,在该平台上创建的所有新 ...