校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 使用Shell腳本如何啟動/停止Java的jar程序

使用Shell腳本如何啟動/停止Java的jar程序

熱門標簽:AI智能電銷機器人壞處 合肥電銷外呼系統供應商 黑暗之魂3地圖標注 沈陽ai電銷智能機器人 如何申請400的電話呀 蘭州電銷機器人加盟 電話機器人對家居行業幫助大嗎 地圖標注審核周期 電商外呼系統排名

本文介紹如何使用Shell腳本來開啟和停止jar程序的后臺運行,以及如何實現out大文件的切分。另外,補充一些后臺運行的小知識。

啟動腳本: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

 啟動腳本說明:

1、開啟后臺執行,并將程序產生的日志文件寫入out文件;
2、將當前進程id寫入/var/run/UploadSchedule.pid,以供在停止腳本中使用此pid來停止當前進程。

停止腳本:stop_upload.sh

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

 停止腳本說明:

1、首先獲取進程id;
2、然后殺掉該進程。

文件切分:split_nohup.sh

程序不中斷,一直在后臺運行,那么產生的log也會持續輸出到out問價,導致out文件越來越大。當需要根據out文件進行一些日志查找的時候,非常不方便。所以定期對out文件進行切分,按日期將當日out文件切分成若干小文件,從而方便處理及錯誤查找定位。

#!/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文件復制一份,命名為nohup_upload_當前日期(比如nohup_upload_20200328.out);
2、將nohup_upload.out文件清空;
3、對nohup_upload_20200328.out文件進行切分,切分后的文件命名格式為nohup_upload_20200328_0001,nohup_upload_20200328_0002;

  • -b 指定每個小文件的大小(單位byte)
  • -d 以數字作為后綴
  • -a 指定后綴的長度

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

執行開啟/停止命令

# 啟動
./start_upload.sh

# 停止
./stop_upload.sh

一些后臺運行的小知識

和nohup區別:

的意思是在后臺運行。意思是說, 當你在執行 ./start_upload.sh 的時候, 即使你用Ctrl + C, 那么start_upload.sh照樣運行(因為對SIGINT信號免疫)。 但是要注意, 如果你直接關掉Shell后, 那么, start_upload.sh進程同樣消失。 因為對SIGHUP信號不免疫。

nohup的意思是忽略SIGHUP信號, 所以當運行nohup ./start_upload.sh的時候, 關閉Shell,start_upload.sh進程還是存在的(對SIGHUP信號免疫)。 但是如果你直接在Shell中用Ctrl + C, 那么,start_upload.sh進程也是會消失的(因為對SIGINT信號不免疫)

所以,要讓進程真正不受Shell中Ctrl + C和Shell關閉的影響, 就用nohup和同時用。

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

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

標簽:通遼 河池 淮南 黔南 常州 河北 隴南 黔南

巨人網絡通訊聲明:本文標題《使用Shell腳本如何啟動/停止Java的jar程序》,本文關鍵詞  使用,Shell,腳本,如何,啟動,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《使用Shell腳本如何啟動/停止Java的jar程序》相關的同類信息!
  • 本頁收集關于使用Shell腳本如何啟動/停止Java的jar程序的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 休宁县| 滦南县| 呼图壁县| 金平| 新兴县| 仁怀市| 怀化市| 凤阳县| 容城县| 南充市| 达州市| 霍邱县| 天峨县| 南郑县| 得荣县| 微山县| 和政县| 灵寿县| 绥滨县| 科尔| 松阳县| 新兴县| 邯郸县| 新巴尔虎左旗| 眉山市| 水城县| 巴林右旗| 双江| 青河县| 祁连县| 普陀区| 南丰县| 绍兴县| 穆棱市| 姜堰市| 平泉县| 板桥市| 宜丰县| 青河县| 平遥县| 德州市|