linux批量启动jar包

先附上命令语句

#!/bin/sh
#当前目录全路径
pp=$(pwd)
export DEMO1=$pp/demo1-8080.jar
export DEMO2=$pp/demo2-8082.jar
 
export DEMO1_port=8080
export DEMO2_port=8082
 
case "$1" in
 
start)
        ## 启动DEMO1
        echo "DEMO1开始启动----------------------"
        echo 'str:'$DEMO1''
        nohup java -Xms256m -Xmx256m -jar $DEMO1 1>>./out.log 2>&1 &
        DEMO1_pid=`lsof -i:$DEMO1_port|grep "LISTEN"|awk '{print $2}'`
        until [ -n "$DEMO1_pid" ]
            do
              DEMO1_pid=`lsof -i:$DEMO1_port|grep "LISTEN"|awk '{print $2}'`  
            done
        echo "----------------------DEMO1启动成功pid:$DEMO1_pid"
        
        ## 启动DEMO2
        echo "DEMO2开始启动--------------------------"
        echo 'str:'$DEMO2''
        nohup java -Xms256m -Xmx256m -jar $DEMO2 1>>./out.log 2>&1 &
        DEMO2_pid=`lsof -i:$DEMO2_port|grep "LISTEN"|awk '{print $2}'` 
        until [ -n "$DEMO2_pid" ]
            do
              DEMO2_pid=`lsof -i:$DEMO2_port|grep "LISTEN"|awk '{print $2}'`  
            done  
        echo "--------------------------DEMO2启动成功pid:$DEMO2_pid"
        echo "===startAll success==="
        ;;
 
 stop)
        P_ID=`ps -ef | grep -w $DEMO1 | grep -v "grep" | awk '{print $2}'`
        if [ "$P_ID" == "" ]; then
            echo "===DEMO1 process not exists or stop success"
        else
            kill -9 $P_ID
            echo "DEMO1 killed success"
        fi
        P_ID=`ps -ef | grep -w $DEMO2 | grep -v "grep" | awk '{print $2}'`
        if [ "$P_ID" == "" ]; then
            echo "===DEMO2 process not exists or stop success"
        else
            kill -9 $P_ID
            echo "DEMO2 killed success"
        fi
 
        echo "===stop success==="
        ;;   
 
restart)
        $0 stop
        sleep 2
        $0 start
        echo "===restart success==="
        ;;   
esac    
exit 0
View Code

 

执行命令报错:

 

 

后查找原因:

发现是win系统文件上传到linux默认加字符,使用命令执行语句:

sed -i 's/\r$//' 【名字】.sh

再次启动:

 

 成功。

 

posted @ 2020-09-24 14:51  记录学习之路  阅读(970)  评论(0编辑  收藏  举报