服務器若是關機,應用比較多的話,須要重啓把全部程序啓動一遍。
在網上找了一些腳本,綜合改了一個新的出來。
之後啓動就能夠少寫一些命令了。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