項目發布,寫了個shell指令碼來啟動項目,包括項目的啟動,關閉 重啟 包括項目的日誌輸出到指定的檔案 ,不為別的,就為了下次項目發布的時候,能夠直接把指令碼拷貝過去用就行啦。哈哈。。
把這段shell指令碼複製過去,只要把紅色部分改為你自己項目的東西,就可以直接運行啦 。
然後賦值該指令碼執行許可權就行了:chmod 777 指令碼名
1.啟動 ./blog.sh start 2../blog.sh stop 3../blog.sh restart
#!/bin/sh #工作空間地址 RUN_DIR=/usr/local/blog#項目運行放一些臨時檔案 CACHE_DIR=/usr/local/blog/cache#配置環境變數 $PATH讀取之前的環境變數用:進行串連 PATH=$PATH:$RUN_DIR#註冊環境變數 export PATH #虛擬機器的一些配置 主要是一個address這個不要重複(防止一個伺服器發布多重專案), JVM_OPTION="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5789"#這個主要是建立項目工作的檔案夾(如果不存在就建立) if [ ! -d "$CACHE_DIR" ]; then echo "${CACHE_DIR}檔案夾不存在,準備建立!" mkdir -p "$CACHE_DIR" echo "${CACHE_DIR}檔案夾建立成功!" fi# 這裡是輸入運行指令 一般都是 ./socket.sh start ./socket.sh stop ./socket.sh restart $1是用來接收輸入的指令 case "$1" in start) echo "Starting bloging..." # 這裡的聲明項目啟動並執行臨時目錄 日誌輸出到指定檔案 &這個是表示以>>守護進程運行 大概就是支援後台啟動並執行意思 java -jar ${JVM_OPTION} -Djava.io.tmpdir="$CACHE_DIR" $RUN_DIR/blog.jar -d"$RUN_DIR">>$RUN_DIR/log & # 這裡是擷取當前項目啟動並執行PID 並寫入到pid檔案中 為了後面的stop做鋪墊 echo $! > $RUN_DIR/pid ;; stop) echo "Stopping bloging..." #讀取pid檔案的項目進程ID PID=$(cat $RUN_DIR/pid) # 殺死項目的進程 kill -9 $PID ;; restart) echo "Stopping bloging..." PID=$(cat $RUN_DIR/pid) kill -9 $PID sleep 2; echo "Starting bloging..." java -jar ${JVM_OPTION} -Djava.io.tmpdir="$RUN_DIR/cache" $RUN_DIR/blog.jar -d"$RUN_DIR">> $RUN_DIR/log & echo $! > $RUN_DIR/pid ;; *) echo "Usage $0 {start|stop|restart}" ;;esac#正常運行程式並退出程式 exit 0
這裡上張伺服器的項目發布的結構圖: