123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- #!/bin/sh
- CWD=$(cd $(dirname $0); pwd)
- API_NAME=<API_NAME>
- JAR_NAME=$CWD/app\.jar
- #PID 代表是PID文件
- PID=$CWD/$API_NAME\.pid
- SKYWALKING_JAVA_AGENT=-javaagent:/opt/skywalking/agent/skywalking-agent.jar
- #使用说明,用来提示输入参数
- usage() {
- echo "Usage: sh 执行脚本.sh [start|stop|restart|status]"
- exit 1
- }
- #检查程序是否在运行
- is_exist(){
- pid=`ps -ef|grep $JAR_NAME|grep -v grep|awk '{print $2}' `
- #如果不存在返回1,存在返回0
- if [ -z "${pid}" ]; then
- return 1
- else
- return 0
- fi
- }
- #启动方法
- start(){
- is_exist
- if [ $? -eq "0" ]; then
- echo ">>> ${JAR_NAME} is already running PID=${pid} <<<"
- else
- echo $SKYWALKING_JAVA_AGENT
- java_agent=SKYWALKING_JAVA_AGENT
- if [[ $SKYWALKING_JAVA_AGENT ]]; then
- echo 'Success'
- java_agent="$SKYWALKING_JAVA_AGENT -Dskywalking.agent.service_name=$API_NAME"
- fi
- java_agent = "$java_agent -Dskywalking.agent.service_name=$API_NAME"
- echo $java_agent
- nohup java <JAVA_OPTS> -jar $JAR_NAME >/dev/null 2>&1 &
- echo $! > $PID
- echo ">>> start $JAR_NAME successed PID=$! <<<"
- fi
- }
- #停止方法
- stop(){
- #is_exist
- pidf=$(cat $PID)
- #echo "$pidf"
- echo ">>> api PID = $pidf begin kill $pidf <<<"
- kill $pidf
- rm -rf $PID
- sleep 2
- is_exist
- if [ $? -eq "0" ]; then
- echo ">>> api 2 PID = $pid begin kill -9 $pid <<<"
- kill -9 $pid
- sleep 2
- echo ">>> $JAR_NAME process stopped <<<"
- else
- echo ">>> ${JAR_NAME} is not running <<<"
- fi
- }
- #输出运行状态
- status(){
- is_exist
- if [ $? -eq "0" ]; then
- echo ">>> ${JAR_NAME} is running PID is ${pid} <<<"
- else
- echo ">>> ${JAR_NAME} is not running <<<"
- fi
- }
- #重启
- restart(){
- stop
- start
- }
- #根据输入参数,选择执行对应方法,不输入则执行使用说明
- case "$1" in
- "start")
- start
- ;;
- "stop")
- stop
- ;;
- "status")
- status
- ;;
- "restart")
- restart
- ;;
- *)
- usage
- ;;
- esac
- exit 0
|