Linux下 使用shell启动、停止jar

新建shell脚本文件并添加以下内容,我一般以项目名来命名,例如项目名为my-project,shell脚本文件则命名为my-project.sh 

#jar包的名称
PROJECT_NAME=my-project
#控制台日志位置
CONSOLE_PATH=$HOME/$PROJECT_NAME.log
#端口号,根据端口号确定PID
PORT=8010
#启动命令所在目录
HOME='./'
#查询监听PORT端口的程序,awk:过滤文本;cut-d / -f 1:以“/"分开的 第一个域
pid=`netstat -anp|grep :$PORT|awk '{printf $7}'|cut -d/ -f1`

#启动
start(){	
	#判断pid非空,then	
	if [ -n "$pid" ]; then
		echo "server already start,pid:$pid"
		return 0
	fi
	#进入命令所在目录
	cd $HOME
	# nohup方式启动jar并将日志重定向到log中,2>&1:将stderr重定向到stdout中   &:放后台执行
	nohup java -jar $PROJECT_NAME.jar > $CONSOLE_PATH 2>&1 &
	echo "start at port:$PORT"
}

#停止
stop(){
	#判断pid非空,then
	if [ -z "$pid" ]; then
		echo "not find program on port:$PORT"
		return 0
	fi
	#结束进程
	kill -9 $pid
	echo "kill program ,pid:$pid"
}

#查看状态
status(){
	#判断pid非空,then
	if [ -z "$pid" ]; then
		echo "not find program on port:$PORT"
	else
		echo "program is running, pid:$pid"
	fi

}

#查看控制台输出
console(){
	#判断pid非空,then
	if [ -z "$pid" ]; then
		echo "not find program on port:$PORT"
		return 0
	fi
	tail -f $CONSOLE_PATH
}

#判断执行那个函数
case $1 in
		start )
		start
		;;
		stop )
		stop
		;;
		status )
		status
		;;
		console )
		console
		;;
		*)
		echo "Usage: (start|stop|status|console)"
		;;
esac
exit 0

命令示例:

启动项目: ./my-project.sh start 

停止项目:./my-project.sh stop

查看状态:./my-project.sh status

查看控制台日志: ./my-project.sh console

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值