1 #!/bin/bash
2
3 # Java ENV
4 export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home
5 export JRE_HOME=${JAVA_HOME}/jre
6
7 # Apps Info
8 # 应用存放地址
9 APP_HOME=/Users/shanglishuai/temp/tyronesoft/applications
10 # 应用名称
11 APP_NAME=$1
12
13 # Shell Info
14
15 # 使用说明,用来提示输入参数
16 usage() {
17 echo "Usage: sh boot [APP_NAME] [start|stop|restart|status]"
18 exit 1
19 }
20
21 # 检查程序是否在运行
22 is_exist(){
23 # 获取PID
24 PID=$(ps -ef |grep ${APP_NAME} | grep -v $0 |grep -v grep |awk '{print $2}')
25 # -z "${pid}"判断pid是否存在,如果不存在返回1,存在返回0
26 if [ -z "${PID}" ]; then
27 # 如果进程不存在返回1
28 return 1
29 else
30 # 进程存在返回0
31 return 0
32 fi
33 }
34
35 # 定义启动程序函数
36 start(){
37 is_exist
38 if [ $? -eq "0" ]; then
39 echo "${APP_NAME} is already running, PID=${PID}"
40 else
41 nohup ${JRE_HOME}/bin/java -jar ${APP_HOME}/${APP_NAME} >/dev/null 2>&1 &
42 PID=$(echo $!)
43 echo "${APP_NAME} start success, PID=$!"
44 fi
45 }
46
47 # 停止进程函数
48 stop(){
49 is_exist
50 if [ $? -eq "0" ]; then
51 kill -9 ${PID}
52 echo "${APP_NAME} process stop, PID=${PID}"
53 else
54 echo "There is not the process of ${APP_NAME}"
55 fi
56 }
57
58 # 重启进程函数
59 restart(){
60 stop
61 start
62 }
63
64 # 查看进程状态
65 status(){
66 is_exist
67 if [ $? -eq "0" ]; then
68 echo "${APP_NAME} is running, PID=${PID}"
69 else
70 echo "There is not the process of ${APP_NAME}"
71 fi
72 }
73
74 case $2 in
75 "start")
76 start
77 ;;
78 "stop")
79 stop
80 ;;
81 "restart")
82 restart
83 ;;
84 "status")
85 status
86 ;;
87 *)
88 usage
89 ;;
90 esac
91 exit 0