主頁 > 知識(shí)庫 > 使用Shell腳本如何啟動(dòng)/停止Java的jar程序

使用Shell腳本如何啟動(dòng)/停止Java的jar程序

熱門標(biāo)簽:AI智能電銷機(jī)器人壞處 合肥電銷外呼系統(tǒng)供應(yīng)商 黑暗之魂3地圖標(biāo)注 沈陽ai電銷智能機(jī)器人 如何申請(qǐng)400的電話呀 蘭州電銷機(jī)器人加盟 電話機(jī)器人對(duì)家居行業(yè)幫助大嗎 地圖標(biāo)注審核周期 電商外呼系統(tǒng)排名

本文介紹如何使用Shell腳本來開啟和停止jar程序的后臺(tái)運(yùn)行,以及如何實(shí)現(xiàn)out大文件的切分。另外,補(bǔ)充一些后臺(tái)運(yùn)行的小知識(shí)。

啟動(dòng)腳本:start_upload.sh

#!/bin/sh
nohup java -jar UploadSchedule.jar >> /usr/local/tomcat9/webapps/upload-to-oss/nohup_upload.out 2>1 
echo $! > /var/run/UploadSchedule.pid

 啟動(dòng)腳本說明:

1、開啟后臺(tái)執(zhí)行,并將程序產(chǎn)生的日志文件寫入out文件;
2、將當(dāng)前進(jìn)程id寫入/var/run/UploadSchedule.pid,以供在停止腳本中使用此pid來停止當(dāng)前進(jìn)程。

停止腳本:stop_upload.sh

#!/bin/sh
PID=$(cat /var/run/UploadSchedule.pid)
kill -9 $PID

 停止腳本說明:

1、首先獲取進(jìn)程id;
2、然后殺掉該進(jìn)程。

文件切分:split_nohup.sh

程序不中斷,一直在后臺(tái)運(yùn)行,那么產(chǎn)生的log也會(huì)持續(xù)輸出到out問價(jià),導(dǎo)致out文件越來越大。當(dāng)需要根據(jù)out文件進(jìn)行一些日志查找的時(shí)候,非常不方便。所以定期對(duì)out文件進(jìn)行切分,按日期將當(dāng)日out文件切分成若干小文件,從而方便處理及錯(cuò)誤查找定位。

#!/bin/bash
log_path=/usr/local/tomcat9/webapps/upload-to-oss

if [ -f "$log_path/nohup_upload.out" ];then
current_date=`date -d "-1 day" "+%Y%m%d"`
cp $log_path/nohup_upload.out $log_path/nohup_upload_${current_date}.out
cat /dev/null > $log_path/nohup_upload.out
split -b 5242880 -d -a 4 $log_path/nohup_upload_${current_date}.out $log_path/nohup_upload_${current_date}_
rm -rf $log_path/nohup_upload_${current_date}.out
fi

切分腳本說明:

1、如果out文件存在,將nohup_upload.out文件復(fù)制一份,命名為nohup_upload_當(dāng)前日期(比如nohup_upload_20200328.out);
2、將nohup_upload.out文件清空;
3、對(duì)nohup_upload_20200328.out文件進(jìn)行切分,切分后的文件命名格式為nohup_upload_20200328_0001,nohup_upload_20200328_0002;

  • -b 指定每個(gè)小文件的大?。▎挝籦yte)
  • -d 以數(shù)字作為后綴
  • -a 指定后綴的長(zhǎng)度

4、將原文件(nohup_upload_20200328.out)刪除。

執(zhí)行開啟/停止命令

# 啟動(dòng)
./start_upload.sh

# 停止
./stop_upload.sh

一些后臺(tái)運(yùn)行的小知識(shí)

和nohup區(qū)別:

的意思是在后臺(tái)運(yùn)行。意思是說, 當(dāng)你在執(zhí)行 ./start_upload.sh 的時(shí)候, 即使你用Ctrl + C, 那么start_upload.sh照樣運(yùn)行(因?yàn)閷?duì)SIGINT信號(hào)免疫)。 但是要注意, 如果你直接關(guān)掉Shell后, 那么, start_upload.sh進(jìn)程同樣消失。 因?yàn)閷?duì)SIGHUP信號(hào)不免疫。

nohup的意思是忽略SIGHUP信號(hào), 所以當(dāng)運(yùn)行nohup ./start_upload.sh的時(shí)候, 關(guān)閉Shell,start_upload.sh進(jìn)程還是存在的(對(duì)SIGHUP信號(hào)免疫)。 但是如果你直接在Shell中用Ctrl + C, 那么,start_upload.sh進(jìn)程也是會(huì)消失的(因?yàn)閷?duì)SIGINT信號(hào)不免疫)

所以,要讓進(jìn)程真正不受Shell中Ctrl + C和Shell關(guān)閉的影響, 就用nohup和同時(shí)用。

到此這篇關(guān)于使用Shell腳本如何啟動(dòng)/停止Java的jar程序的文章就介紹到這了,更多相關(guān)Shell 啟動(dòng)停止jar程序內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 監(jiān)控MySQL主從狀態(tài)的shell腳本
  • shell腳本使用兩個(gè)橫杠接收外部參數(shù)的方法
  • Shell中使用grep、sed正則提取和替換字符串
  • Shell eval通過變量獲取環(huán)境變量的方法實(shí)現(xiàn)
  • shell腳本實(shí)戰(zhàn)-while循環(huán)語句
  • shell腳本--sed的用法詳解
  • linux shell中 if else以及大于、小于、等于邏輯表達(dá)式介紹
  • Linux中執(zhí)行shell腳本的4種方法總結(jié)
  • 一個(gè)不錯(cuò)的shell 腳本教程 入門級(jí)
  • Shell字符串比較相等、不相等方法小結(jié)
  • python中執(zhí)行shell命令的幾個(gè)方法小結(jié)
  • 分享一個(gè)可以通過命令簡(jiǎn)寫執(zhí)行對(duì)應(yīng)命令的Shell腳本

標(biāo)簽:通遼 河池 淮南 黔南 常州 河北 隴南 黔南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《使用Shell腳本如何啟動(dòng)/停止Java的jar程序》,本文關(guān)鍵詞  使用,Shell,腳本,如何,啟動(dòng),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《使用Shell腳本如何啟動(dòng)/停止Java的jar程序》相關(guān)的同類信息!
  • 本頁收集關(guān)于使用Shell腳本如何啟動(dòng)/停止Java的jar程序的相關(guān)信息資訊供網(wǎng)民參考!
  • 企业400电话

    智能AI客服机器人
    15000

    在线订购

    合计11份范本:公司章程+合伙协议+出资协议+合作协议+股权转让协议+增资扩股协议+股权激励+股东会决议+董事会决议

    推薦文章