liunx 部署 springboot jar包 並編寫腳本

我們將springboot 打成jar包後 上傳至服務器 。

用命令行啓動jar 包有幾種方式

 

// 直接在控制檯進行啓動,缺點就是控制檯關閉項目也就關閉了。
java -jar bootdo.jar
// 這種方式可以運行在後臺,但是如果推出了shell的話,那也會掛
java -jar /bootdo-2.0.0.jar > bootdolog.file 2>&1 &
// 加上nohup的話,即使推出shell,也不影響。
nohup java -jar /bootdo-2.0.0.jar > bootdolog.file 2>&1 &

nohup表示永久運行 ,即使退出ssh連接依然在運行 

& 表示後臺運行 退出了ssh連接後 就會停止運行

> 代表重定向到哪裏

1 表示stdout標準輸出,系統默認值是1,所以”>/dev/null”等同於”1>/dev/null”

2 表示stderr標準錯誤

 

其實通過方式三我們就可以實現 項目始終運行 ,如果 需要重新啓動 那麼你需要通過 ps -ef | grep xia17user 查詢到進程號,在通過 kill -s 9 ${pid} 殺死進程 在重新啓動 ,挺麻煩的。

其實到這我們就可以想到用 sh 腳本來實現項目的啓動、重啓、關閉 等操作 

新建一個腳本

#!/bin/bash
#這裏可替換爲你自己的執行程序,其他代碼無需更改
APP_NAME=websocketserver-0.0.1-SNAPSHOT.jar

#使用說明,用來提示輸入參數
usage() {
echo "Usage: sh 腳本名.sh [start|stop|restart|status]"
exit 1
}

#檢查程序是否在運行
is_exist(){
pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' `
#如果不存在返回1,存在返回0
if [ -z "${pid}" ]; then
return 1
else
return 0
fi
}

#啓動方法
start(){
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is already running. pid=${pid} ."
else
nohup java -jar /mnt/ssd1/project/websocket/$APP_NAME > /mnt/ssd1/project/websocket/websocketserverlog.file 2>&1 &
echo "${APP_NAME} start success"
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
}

#根據輸入參數,選擇執行對應方法,不輸入則執行使用說明
case "$1" in
"start")
start
;;
"stop")
stop
;;
"status")
status
;;
"restart")
restart
;;
*)
usage
;;
esac

在這裏有我將  > /mnt/ssd1/project/websocket/websocketserverlog.file 直接刪除了 ,因爲我不知道他是幹嘛的、、還有前面的文件路徑我也直接使用的是相對路徑 $APP_NAME  這個變量的值需要自己修改成文件名。

這裏的話參考下文章:https://blog.csdn.net/geekster/article/details/6657620 講述了 nohup 命令

補充下

sh xxx.sh與./xxx.sh區別

sh xxx.sh 是不需要有執行權限

./xxx.sh 是需要有執行權限的,可以通過 chmod +x xxx.sh 賦予權限

如果你是在windows 下寫的腳本然後上傳到服務器你需要改變下文件格式 使用sed命令sed -i "s/\r//" filename  或者 sed -i "s/^M//" filename直接替換結尾符爲unix格式

參考博客:https://blog.csdn.net/hxpjava1/article/details/79711710

注:全文參考:http://www.west.cn/docs/51562.html 侵刪

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章