bat或sh后台应用程序启动脚本编写,循环设置path

对于后台服务应用,通常是将应用打包成jar包后,通过编写批处理脚本来启动执行。

这里的启动脚本在windows环境即BAT批处理文件,linux环境即sh bash脚本,其中对于应用的依赖jar包需要通过读取lib目录下的所有jar文件,并设置到path中。

BAT脚本:

@echo off
title MyServer
set pathPrefix=./lib/
set lib=

::遍历参数,并将这些参数拼接起来
for %%i in (./lib/*.jar) do call :concat %%i
set "lib=./;./conf;%lib%"
echo %lib%
java -cp %lib% cn.my.app.main.AppMain
pause 
goto :eof

::对参数进行加前缀、拼接
:concat
set lib=%lib%;%pathPrefix%%1
goto :eof

BASH脚本:

1、启动脚本:start.sh

#!/bin/sh
workspace=$(dirname $0);
cd $workspace;
workspace=$PWD;
./status.sh
if [ $? -eq 0 ]
then
	lib=MyServer:$PWD:./conf/
        for jarpath in `ls lib/*.jar`
        do
                lib=$lib:$PWD/$jarpath
        done
	nohup java -cp $lib cn.my.app.main.AppMain >> logs/stdout.log &
        echo "Starting MyServer..."
        sleep 2
        ./status.sh
else
        echo " MyServer is already running now."
        echo "     "
fi
tail -200f logs/stdout.log

2、查询应用状态脚本:status.sh

#!/bin/sh
proStatus=`ps -ef|grep java|grep MyServer`
echo "     "
echo " Process     Status     ID"
echo "============================"
if [ -n "$proStatus" ]
then
     proID=`echo $proStatus|awk '{print $2}'`
     echo "MyServer      Up     $proID"
     echo "     "
     #jmap -heap $proID
     exit 1
else
     echo "MyServer     Down       null"
     echo "     "
     exit 0
fi

运行status.sh显示如下界面:

 Process     Status     ID
============================                
MyServer      Up     5800

 或者 

 Process     Status     ID
============================
MyServer      Down     null

3、停止应用脚本:shudown.sh

#!/bin/sh
workspace=$(dirname $0);
cd $workspace;
workspace=$PWD;

./status.sh
if [ $? -eq 0 ]
then
  echo "MyServer is NOT running."
  echo " "
else
	lib=shutdown_MyServer:$PWD:./conf/
	for jarpath in `ls lib/*.jar`
	do
	        lib=$lib:$PWD/$jarpath
	done
	nohup java -cp $lib cn.my.app.main.Shutdown >> logs/shutdown.log &
	echo "MyServer Stopping ..."
	sleep 3
  
	 ./status.sh
	 if [ $? -eq 0 ]
	then
	  echo "MyServer is NOT running."
	  echo " "
	else
	  proID=`ps -ef|grep java|grep MyServer |awk '{print $2}'`
	  echo "Stopping MyServer..."
	  kill -9 $proID
	  sleep 1
	  
	  proID=`ps -ef|grep java|grep shutdown_MyServer |awk '{print $2}'`
	  echo "Stopping shutdown_MyServer..."
	  kill -9 $proID
	  sleep 1
	 ./status.sh
	fi
fi

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值