linux shell腳本啟動jar指定環(huán)境和端口,并打印日志到屏幕

nohup 日志重新定向到 null/dev目錄中,避免時間長了,日志文件過大,占用服務(wù)器資源。
tail -f myLogs/web_info.log 追蹤的日志文件是項目自己生成的。
sleep 2s休眠兩秒執(zhí)行追蹤日志文件命令,是為了讓避免 tail: no files remaining
mkdir_logfile()創(chuàng)建目錄,和文件(記錄一下,和啟動jar沒關(guān)系);
錯誤。

usage() {
    echo "Usage: sh 執(zhí)行腳本.sh [start|stop|restart|status]"
    exit 1
}
 
is_exist(){
    pid=$(ps -ef | grep $APP_NAME  | grep -v grep | awk '{print $2}')
    if [ -z $pid ]; then
        return "1"
    else
        echo "${APP_NAME} is running. Pid is ${pid}"
        return "0"
    fi
}
mkdir_logfile(){
     # 判斷目錄是不是已經(jīng)存在,如果不存在則創(chuàng)建,存在則輸出“dir exist” 
          echo "the dir name is myLogs"
          if [ ! -d myLogs  ];then
                mkdir myLogs
                echo "success"
                cd myLogs
                touch web_info.log
                echo "success1"
          else
          echo "error"
          fi
}
start(){
    #mkdir_logfile
    is_exist
    if [ $? -eq "0" ]; then
        echo "${APP_NAME} is already running. pid=${pid} ."
    else
        echo "${app_name} is start running"
        nohup java -jar  -Xms128M -Xmx128M  $APP_NAME --server.port=$PROT --spring.profiles.active=$PROFILE  > /dev/null 2>&1 & 
        sleep 2s 
        tail -f myLogs/web_info.log
    fi
}
 
stop(){
    is_exist
    if [ $? -eq "0" ]; then
        kill -9 $pid
    else
        echo "${APP_NAME} is not running"
    fi  
}
 
status(){
    is_exist
    if [ $? -eq "0" ]; then
        echo "${APP_NAME} is running. Pid is ${pid}"
    else
        echo "${APP_NAME} is NOT running."
    fi
}
 
restart(){
    stop
    start
}
 
APP_NAME=jar名稱
 
if [ -z "${APP_NAME}" ]; then
        echo "require jar name"
        exit 1
fi
PROFILE=環(huán)境
 
if [ -z "${PROFILE}" ]; then
        echo "require profile"
        exit 1
fi
PROT=端口號

if [ -z "${PROT}" ]; then
        echo "require prot"
        exit 1
fi
pid=''
 
case "$1" in
    "start")
        start
        ;;
    "stop")
        stop
        ;;
    "status")
        status
        ;;
    "restart")
        restart
        ;;
    *)
        usage
        ;;
esac

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容