发布于 

jar启动脚本

新建一个start.sh文件,编辑内容如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/bin/sh

## java env
#export JAVA_HOME=/data/jdk1.8.0_121
#export JRE_HOME=$JAVA_HOME/jre

## service name
#当前目录
NOW_PATH=$(cd `dirname $0`; pwd)
#jar包路径
JAR_DIR=`ls -ltr $NOW_PATH/*.jar| tail -1`
#jar包名字
JAR_NAME=${JAR_DIR##*/}
#日志名字
LOG_NAME=${JAR_NAME%%.*}


PID=$LOG_NAME\.pid


case "$1" in

start)
nohup java -Xms256m -Xmx1024m -jar $JAR_NAME --spring.profiles.active=test > logs/$LOG_NAME.log 2>&1 &
#echo $! > $NOW_PATH/$PID
#echo "=== start $JAR_NAME"
#tail -1000f logs/$LOG_NAME.log
;;

stop)
echo "=== stop $JAR_NAME"
ps -ef|grep $JAR_NAME |grep -v grep |awk '{print $2}'|xargs kill -9
;;

restart)
$0 stop
sleep 2
$0 start
echo "=== restart $LOG_NAME"
;;

*)
echo "Usage:$0 {start|stop|restart}"
;;

esac
exit 0

该文件放在jar包同级目录下,并新建logs文件夹
具体命令 如下: 启动 ./start.sh start 停止 ./start.sh stop 重启 ./start.sh restart
一个服务对应一个脚本,用文件夹隔离,别用来批量启动jar,即一个文件夹里最好是只放一个jar

1
2
3
4
-Xms256m初始内存
-Xmx1024m最大内存
--spring.profiles.active=test 指定配置文件 例如指定application-test.yml
#tail -1000f logs/$LOG_NAME.log 注释掉的这行是指启动后打印1000行日志然后停止打印

查看内存使用情况

1
top -o %MEM -b -n 1 | grep java | awk '{print "PID: "$1" \t 虚拟内存: "$5" \t 物理内存: "$6" \t 共享内存: "$7" \t CPU使用率: "$9"% \t 内存使用率: "$10"%"}'

查看服务是否启动的脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/bin/bash

service_names=(
'xx1'
'xx2'
'xx3'
)


for(( i=0;i<${#service_names[@]};i++)) do
result=$(jps | grep "${service_names[i]}")
if [[ "$result" == "" ]]
then
echo "${service_names[i]} is not started"
fi
done;

exit 0