1. windows启动的方式
1.1 前台运行方式
- 创建start.bat文件,运行指定目录下的jar包
目录结构
|--start.bat
|--data
|--data.jar
@echo off
start java -jar %~dp0data\data.jar
pause
%~dp0
: 含义是当前所执行bat文件的路径
1.2 后台运行
@echo off
start javaw -jar %~dp0data\data.jar
exit
2. windows停止的方式
@echo off
set port=8090
for /f "tokens=1-5" %%i in ('netstat -ano^|findstr ":%port%"') do taskkill /pid %%m -t -f
exit
tokens=m-n
:表示提取第m列至第n列。%%j
:在 FOR 语句中显式声明%%i
。也 隐式声明了%%i %%j %%k %%l...
它的个数由tokens后面的(m-n)决定,但是不能超过Z。
你要是声明%%a
后面就是%%b %%c ...
3. Linux
#!/bin/bash
## 指定jar包路径
export GATEWAY=./gateway/gateway.jar
export DATA=./airport-data/data.jar
export HIK=./hik/hik.jar
export DOC=./doc/doc.jar
export GATEWAY_port=10014
export DATA_port=10015
export HIK_port=10016
export DOC_port=10017
case "$1" in
start)
## 启动GATEWAY
echo "--------gateway 开始启动--------------"
nohup java -jar $GATEWAY >/dev/null 2>&1 &
GATEWAY_pid=`lsof -i:$GATEWAY_port|grep "LISTEN"|awk '{print $2}'`
until [ -n "$GATEWAY_pid" ]
do
GATEWAY_pid=`lsof -i:$GATEWAY_port|grep "LISTEN"|awk '{print $2}'`
done
echo "service gateway pid is $GATEWAY_pid"
echo "--------gateway 启动成功--------------"
## 启动DATA
echo "--------data 开始启动---------------"
nohup java -jar $DATA >/dev/null 2>&1 &
DATA_pid=`lsof -i:$DATA_port|grep "LISTEN"|awk '{print $2}'`
until [ -n "$DATA_pid" ]
do
DATA_pid=`lsof -i:$DATA_port|grep "LISTEN"|awk '{print $2}'`
done
echo "service data pid is $DATA_pid"
echo "---------data 启动成功-----------"
## 启动hik
echo "--------hik 开始启动---------------"
nohup java -jar $HIK >/dev/null 2>&1 &
HIK_pid=`lsof -i:$HIK_port|grep "LISTEN"|awk '{print $2}'`
until [ -n "$HIK_pid" ]
do
HIK_pid=`lsof -i:$HIK_port|grep "LISTEN"|awk '{print $2}'`
done
echo "service hik pid is $HIK_pid"
echo "---------hik 启动成功-----------"
## 启动doc
echo "--------doc 开始启动---------------"
nohup java -jar $DOC >/dev/null 2>&1 &
DOC_pid=`lsof -i:$DOC_port|grep "LISTEN"|awk '{print $2}'`
until [ -n "$DOC_pid" ]
do
DOC_pid=`lsof -i:$DOC_port|grep "LISTEN"|awk '{print $2}'`
done
echo "service doc pid is $DOC_pid"
echo "---------doc 启动成功-----------"
echo "===startAll success==="
;;
stop)
P_ID=`ps -ef | grep -w $GATEWAY | grep -v "grep" | awk '{print $2}'`
if [ "$P_ID" == "" ]; then
echo "===GATEWAY process not exists or stop success"
else
kill -9 $P_ID
echo "GATEWAY killed success"
fi
P_ID=`ps -ef | grep -w $DATA | grep -v "grep" | awk '{print $2}'`
if [ "$P_ID" == "" ]; then
echo "===DATA process not exists or stop success"
else
kill -9 $P_ID
echo "DATA killed success"
fi
P_ID=`ps -ef | grep -w $HIK | grep -v "grep" | awk '{print $2}'`
if [ "$P_ID" == "" ]; then
echo "===HIK process not exists or stop success"
else
kill -9 $P_ID
echo "HIK killed success"
fi
P_ID=`ps -ef | grep -w $DOC | grep -v "grep" | awk '{print $2}'`
if [ "$P_ID" == "" ]; then
echo "===DOC process not exists or stop success"
else
kill -9 $P_ID
echo "DOC killed success"
fi
echo "===stopAll success==="
;;
restart)
$0 stop
sleep 2
$0 start
echo "===restartAll success==="
;;
esac
exit 0