编写脚本:后台运行java程序

5 篇文章 0 订阅

1. 编写start.sh

在这里插入图片描述
解析

nohup java -Dfile.encoding=GBK -Xmx3000M -cp ./lib/PrdCommon.jar:./lib/PrjTrade.jar com.ylink.TradeServer >output.log 2>&1 &
tail -f output.log

说明:
1)nohup代表忽略hup挂起信号,即不挂起
2)java代表启动java程序的java命令
3)-Dfile.encoding=GBK代表设置JVM字符集为GBK
4)-Xmx3000M代表设置最大堆内存为3000M
5)-cp代表-classpath 后面跟的是Java程序运行所依赖的jar包
6)com.ylink.TradeServer 代表指定Java程序的主方法入口
7)>output.log代表将标准输出重定向到output.log
8)2>&1代表将标准错误重定向到标准输出
9)&代表程序将在后台运行
综合:初始化堆内存最大值为3000M,启动并后台运行依赖某某jar包,并以TradeServer为主类的Java程序.

2. 杀死项目再重启项目

  1. 查看服务器端口使用情况
    netstat -ntlp
  2. kill -9 pid

编写重启脚本 killandstart.sh

#查找该端口的进程信息,并将第二列的进程号赋给ID
ID=`lsof -i:9086 |grep java |awk '{print $2}'`
echo $ID

kill -9 $ID
echo "kill success!"

nohup java -jar netdemo.jar & tailf nohup.out
echo "restart success"

3. 编写stop.sh

server_name=QuoteServer
echo ******stop $server_name begin******
#find the pid of server_name
str=$(ps -ef|grep $server_name|grep -v "grep"|awk '{printf$2}')
kill -9 $str
if [ "$?" -eq 0 ];then
  echo kill $server_name Success,pid=$str
else
  echo kill $server_name Failed,pid=$str
fi
echo ******stop $server_name end******

1)定义服务名称变量,后续会据此查找服务对应的Java进程号pid;
2)使用e’cho进行脚本执行过程提示;
3)使用ps -ef|grep $server_name查到关键字位服务名称的Java进程
4)|grep -v “grep” 表示屏蔽grep进程
5)|awk ‘{printf$2}’ 表示从查询出的Java进程信息中取出第二位的进程号信息,pid在ps -ef结果的第二列
6)将进程号赋值给str变量
7)使用kill -9 $str,kill掉指定服务的Java进程
8)根据kill的执行返回结果,利用echo显示执行成功或失败的结果及进程号信息.
综合:先找到指定服务的进程号,然后kill掉,最后根据执行结果输出执行成功或失败的提示.

原文链接:https://blog.csdn.net/u010425839/article/details/106210217

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值