Linux笔记-bash批量启动、停止、重启、查询状态指定Java进程(其他进行通用)
生活随笔
收集整理的這篇文章主要介紹了
Linux笔记-bash批量启动、停止、重启、查询状态指定Java进程(其他进行通用)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
此篇博文記錄了在centos7.5上,編寫bash,實現批量啟動,停止、重啟、查詢java(其他進程通用)。
?
這里有下面幾個知識點:
1. shell中如何使用數組;
2. shell中對數組進行遍歷;
3. echo和eval執行命令;
4. shell中case的使用;
5. 根據輸入的啟動命令查詢進程ID(這個命令復雜只能用eval啟動);
6. shell中如何定義并調用函數;
7. 在多客戶端的java,通過--type這種類似的命令,區分不同的進程。
?
代碼如下:
#! /bin/bashProPath=( 'java -jar /root/XXXX/XXXX-1.18.jar' 'java -jar /root/XXXX/XXXX-1.1.jar' 'java -jar /root/XXXX/XXXX-1.15.jar' 'java -jar /root/XXXX/XXXX-1.14.jar' 'java -jar /root/XXXX/XXXX-1.1.jar' 'java -jar /root/XXXX/XXXX-1.5.jar' 'java -jar /root/XXXX/XXXX-1.8.jar --type=1' 'java -jar /root/XXXX/XXXX-1.8.jar --type=2' 'java -jar /root/XXXX/XXXX-1.8.jar --type=3' 'java -jar /root/XXXX/XXXX-1.8.jar --type=4' 'java -jar /root/XXXX/XXXX-1.8.jar --type=5' 'java -jar /root/XXXX/XXXX-1.8.jar --type=6' 'java -jar /root/XXXX/XXXX-1.8.jar --type=7' 'java -jar /root/XXXX/XXXX-1.8.jar --type=8' 'java -jar /root/XXXX/XXXX-1.8.jar --type=9' 'java -jar /root/XXXX/XXXX-1.8.jar --type=10' 'java -jar /root/XXXX/XXXX-1.8.jar --type=11' 'java -jar /root/XXXX/XXXX-1.8.jar --type=12' 'java -jar /root/XXXX/XXXX-1.8.jar --type=13' 'java -jar /root/XXXX/XXXX-1.8.jar --type=14' 'java -jar /root/XXXX/XXXX-1.8.jar --type=15' ) readonly ProPathstartFunction(){#startecho 'start'for i in "${!ProPath[@]}";doprintf "start... %s\t%s\n" "$i" "${ProPath[$i]}"#cmd= "/usr/bin/nohup /usr/bin/java -jar ${ProPath[$i]} &"#cmd='/usr/bin/java -jar /root/bin/myJava1.jar'#eval $cmdnohup ${ProPath[$i]} &done }statusFunction(){#The process statusecho '--------------------status--------------------'for i in "${!ProPath[@]}";doP_ID="ps -ef | grep -w '${ProPath[$i]}' | grep -v "grep" | awk '{print \$2}'"P_ID=$(eval $P_ID)if [ "${P_ID}" == "" ]; thenecho "${ProPath[$i]}" $'\t' " not yet run"elseecho "${ProPath[$i]}" $'\t' " still in progress"fidone}stopFunction(){echo stopfor i in "${!ProPath[@]}";doP_ID="ps -ef | grep -w '${ProPath[$i]}' | grep -v "grep" | awk '{print \$2}'"P_ID=$(eval $P_ID)if [ "${P_ID}" == "" ]; thenecho "${ProPath[$i]} not exists"else#echo $P_IDkill -9 $P_IDecho "${ProPath[$i]} killed success"fidone }case "$1" instart)startFunction;;status)statusFunction;;stop)stopFunction;;restart)stopFunctionstartFunction;;esacecho 'start|status|stop|restart'exit 0?
總結
以上是生活随笔為你收集整理的Linux笔记-bash批量启动、停止、重启、查询状态指定Java进程(其他进行通用)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java工作笔记-类型转换的一种思路(前
- 下一篇: Linux笔记-手动配置yum及光盘安装