linux部署jar包腳本和注冊(cè)開機(jī)啟動(dòng)

前言

之前開發(fā)了windows部署jar包為服務(wù)的工具在實(shí)際生產(chǎn)環(huán)境中使用非常簡(jiǎn)單方便弯洗,公司部分項(xiàng)目是部署在linux系統(tǒng)中的妄讯,所以決定整合一個(gè)通用的jar包部署腳本肠鲫,并注冊(cè)為開機(jī)啟動(dòng)服務(wù),為開發(fā)實(shí)施的同事提供方便榜轿,以下操作實(shí)際系統(tǒng)環(huán)境為centos8

通過腳本啟動(dòng)

  • 安裝jdk幽歼,可以不配置環(huán)境變量

  • 腳本和部署jar包放置在同一個(gè)文件夾

  • 修改腳本deploy.sh中的JAVA_HOME指向jdk目錄,修改APP_NAME為jar包的名字

#!/bin/bash
export JAVA_HOME=/usr/soft/jdk/jdk1.8.0_241
export JRE_HOME=/$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

#這里可替換為你自己的執(zhí)行程序谬盐,其他代碼無需更改

APP_NAME= manage.jar
#使用說明甸私,用來提示輸入?yún)?shù)
usage() {
    echo "Usage: sh robotcenter.sh [start|stop|restart|status]"
    exit 1
}

#檢查程序是否在運(yùn)行
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
}

#啟動(dòng)方法
start(){
  is_exist
  if [ $? -eq 0 ]; then
    echo "${APP_NAME} is already running. pid=${pid}"
  else
    nohup java -jar ${APP_NAME} > app.log 2>&1 &
  fi
}

#停止方法
stop(){
  is_exist
  if [ $? -eq "0" ]; then
    kill -9 $pid
  else
    echo "${APP_NAME} is not running"
  fi  
}

#輸出運(yùn)行狀態(tài)
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
  sleep 5
  start
}

#根據(jù)輸入?yún)?shù)飞傀,選擇執(zhí)行對(duì)應(yīng)方法皇型,不輸入則執(zhí)行使用說明
case "$1" in
  "start")
    start
    ;;
  "stop")
    stop
    ;;
  "status")
    status
    ;;
  "restart")
    restart
    ;;
  *)
    usage
    ;;
esac
  • 命令行進(jìn)入對(duì)應(yīng)腳本目錄
cd /usr/jenkinsworkspace/manage
  • 腳本文件授權(quán)
chmod u+x deploy.sh
  • 啟動(dòng)jar包,同目錄app.log顯示日志砸烦,重新啟動(dòng)日志會(huì)覆蓋
./deploy.sh start
  • 查看jar包運(yùn)行狀態(tài)
./deploy.sh status
  • 停止jar包
./deploy.sh stop

注冊(cè)服務(wù)啟動(dòng)

  • 需要執(zhí)行完畢【通過腳本啟動(dòng)】步驟配置內(nèi)容

  • 修改deploystart.sh和deploystop.sh腳本內(nèi)容重的cd路徑為【通過腳本啟動(dòng)】步驟拷貝到的項(xiàng)目路徑

deploystart.sh

cd /usr/jenkinsworkspace/manage;chmod u+x deploy.sh;./deploy.sh start

deploystop.sh

cd /usr/jenkinsworkspace/manage;chmod u+x deploy.sh;./deploy.sh stop
  • 拷貝deploy.service弃鸦,deploystart.sh,deploystop.sh到/etc/systemd/system目錄

deploy.service

[Unit]
Description=run deploy service
After=network.target

[Service]
Type=forking
ExecStart=/bin/bash /etc/systemd/system/deploystart.sh
ExecStop=/etc/systemd/system/deploystop.sh
PrivateTmp=true

[Install]
WantedBy=multi-user.target
  • 執(zhí)行命令服務(wù)開機(jī)啟動(dòng)
systemctl enable deploy.service
  • 執(zhí)行命令取消服務(wù)開機(jī)啟動(dòng)
systemctl disable deploy.service
  • 執(zhí)行命令查看服務(wù)狀態(tài)
systemctl status deploy
  • 執(zhí)行命令啟動(dòng)服務(wù)
systemctl start deploy
  • 執(zhí)行命令停止服務(wù)
systemctl stop deploy
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末幢痘,一起剝皮案震驚了整個(gè)濱河市唬格,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌雪隧,老刑警劉巖西轩,帶你破解...
    沈念sama閱讀 219,039評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異脑沿,居然都是意外死亡藕畔,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門庄拇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來注服,“玉大人,你說我怎么就攤上這事措近∪艿埽” “怎么了?”我有些...
    開封第一講書人閱讀 165,417評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵瞭郑,是天一觀的道長(zhǎng)辜御。 經(jīng)常有香客問我,道長(zhǎng)屈张,這世上最難降的妖魔是什么擒权? 我笑而不...
    開封第一講書人閱讀 58,868評(píng)論 1 295
  • 正文 為了忘掉前任袱巨,我火速辦了婚禮,結(jié)果婚禮上碳抄,老公的妹妹穿的比我還像新娘愉老。我一直安慰自己,他們只是感情好剖效,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評(píng)論 6 392
  • 文/花漫 我一把揭開白布嫉入。 她就那樣靜靜地躺著,像睡著了一般璧尸。 火紅的嫁衣襯著肌膚如雪咒林。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評(píng)論 1 305
  • 那天逗宁,我揣著相機(jī)與錄音映九,去河邊找鬼。 笑死瞎颗,一個(gè)胖子當(dāng)著我的面吹牛件甥,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播哼拔,決...
    沈念sama閱讀 40,416評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼引有,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了倦逐?” 一聲冷哼從身側(cè)響起譬正,我...
    開封第一講書人閱讀 39,326評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎檬姥,沒想到半個(gè)月后曾我,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,782評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡健民,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評(píng)論 3 337
  • 正文 我和宋清朗相戀三年抒巢,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片秉犹。...
    茶點(diǎn)故事閱讀 40,102評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蛉谜,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出崇堵,到底是詐尸還是另有隱情型诚,我是刑警寧澤,帶...
    沈念sama閱讀 35,790評(píng)論 5 346
  • 正文 年R本政府宣布鸳劳,位于F島的核電站狰贯,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜暮现,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評(píng)論 3 331
  • 文/蒙蒙 一还绘、第九天 我趴在偏房一處隱蔽的房頂上張望楚昭。 院中可真熱鬧栖袋,春花似錦、人聲如沸抚太。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽尿贫。三九已至电媳,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間庆亡,已是汗流浹背匾乓。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留又谋,地道東北人拼缝。 一個(gè)月前我還...
    沈念sama閱讀 48,332評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像彰亥,于是被迫代替她去往敵國(guó)和親咧七。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容