Centos學習筆記14-java程序啓動腳本

服務器如果關機,應用比較多的話,需要重啓把所有程序啓動一遍。
在網上找了一些腳本,綜合改了一個新的出來。
以後啓動就可以少寫一些命令了。

啓動命令
假定項目名字是fileserver, 文件服務器,用來上傳和下載

./start.sh jar包目錄 jar包文件名稱 日誌文件名稱


./start.sh /opt/fileserver fileserver-1.00.jar fileserver_log.log
腳本名稱start.sh

#!/bin/bash
# -------------------------------------------
# linux下運行jar包的方式如下
# -------------------------------------------
# java -jar xxx.jar  
# 當前ssh窗口被鎖定,可按CTRL + C打斷程序運行,或直接關閉窗口,程序退出
# -------------------------------------------
# java -jar xxx.jar &           
# 當前ssh窗口不被鎖定,但是當窗口關閉時,程序中止運行。
# -------------------------------------------
# nohup Java -jar xxx.jar &                  
# 後臺運行命令,當賬戶退出或終端關閉時,程序仍然運行,控制檯輸出到nohup.out文件
# -------------------------------------------
# nohup Java -jar xxx.jar >/dev/null 2>&1 &
# 後臺運行命令, 控制檯輸出丟棄
# -------------------------------------------

# -------------------------------------------
# jar 包啓動腳本
# $1 APP 目錄
# $2 APP 名稱
# $3 LOG 名稱
# -------------------------------------------

APP_DIR=$1
APP_NAME=$2
LOG_NAME=$3
echo : [app dir]  $APP_DIR
echo : [app name] $APP_NAME
echo : [log name] $LOG_NAME
# -------------------------------------------
# 配置日誌目錄
# -------------------------------------------

LOG_DIR=$APP_DIR/logs
LOG_FILE=$LOG_DIR/$LOG_NAME
echo : [log dir] $LOG_DIR
echo : [log file] $LOG_FILE

# -------------------------------------------
# 查找應用是否正在運行,如果在運行,就殺掉這些進程
# -------------------------------------------
pid=`ps -ef | grep java |grep $APP_NAME | grep -v grep |awk '{print $2}'`
echo $pid
if [ -n "$pid" ]; then 
    echo : $APP_NAME  is  running pid=$pid
    echo : kill $APP_NAME
    kill -9 $pid
fi

cd $APP_DIR
nohup java -jar -Denv=rc $APP_NAME >/dev/null 2>&1 &
tail -f $LOG_FILE
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章