鉴于运维反映,一个一个去启动java程序或者一个一个去杀掉进程太麻烦,运维人员想要一条命令搞定的那种,那么就需要写2个shell脚本,一起来启动或者停止,能够解决时间问题和效率问题,值得拥有。

1.启动脚本:

nohup java -jar -Xms128m -Xms256m DFGZ_Socket.jar >> $HOME/dfgz/log/DFGZ_Socket.out &
nohup java -jar -Xms128m -Xms256m DFGZ_GZHF2CCB.jar >> $HOME/dfgz/log/DFGZ_GZHF2CCB.out &
nohup java -jar -Xms128m -Xms256m DFGZ_FolderFileScanner.jar >> $HOME/dfgz/log/DFGZ_FolderFileScanner.out &
nohup java -jar -Xms128m -Xms256m DFGZ_FileIntoRepository.jar >> $HOME/dfgz/log/DFGZ_FileIntoRepository.out &
nohup java -jar -Xms128m -Xms256m DFGZ_GenerateUploadFile.jar >> $HOME/dfgz/log/DFGZ_GenerateUploadFile.out &
nohup /home/ap/yczj/dfgz/java/jdk1.8.0_181/bin/java -jar -Xms128m -Xms256m  DFGZ_SftpDownloadFile.jar >> $HOME/dfgz/log/DFGZ_SftpDownloadFile.out &
nohup /home/ap/yczj/dfgz/java/jdk1.8.0_181/bin/java -jar -Xms128m -Xms256m  DFGZ_SftpUploadFile.jar >> $HOME/dfgz/log/DFGZ_SftpUploadFile.out &

注:

1️⃣.nohup 守护线程作用

2️⃣.-Xms128m -Xms256m 用于限制运行内存作用

3️⃣.>>$HOME/../日志名.out 用于指定日志

4️⃣./home/ap/yczj/dfgz/java/jdk1.8.0_181/bin/java 用于指定jdk版本(按需取材)

2.停止脚本

#! /bin/sh
#XXXXXXSocket通讯程序
DFGZ_Socket=DFGZ_Socket.jar
#XXXXXXP5通讯的程序
DFGZ_GZHF2CCB=DFGZ_GZHF2CCB.jar
#XXXXXX对接入库处理程序
DFGZ_FolderFileScanner=DFGZ_FolderFileScanner.jar



dfgz1(){
ps -ef|grep $DFGZ_Socket|grep -v "grep"|awk '{print $2}'|while read pid
        do
           echo "                                     停止$pid进程"
           kill -9 $pid
        done

}

dfgz2(){

ps -ef|grep $DFGZ_GZHF2CCB|grep -v "grep"|awk '{print $2}'|while read pid
        do
           
           echo "                                     停止$pid进程"
           kill -9 $pid
        done
}

dfgz3(){

ps -ef|grep $DFGZ_FolderFileScanner|grep -v "grep"|awk '{print $2}'|while read pid
        do

           echo "                                     停止$pid进程"
           kill -9 $pid
        done
}



case $1 in

  all)

echo *************************************开始停止所有服务**********************************
    dfgz1
    dfgz2
    dfgz3
  ;;

  dfgz1)

echo *************************************开始停止XXXXXXSocket通讯服务**********************************
    dfgz1
  ;;

  dfgz2)

echo *************************************开始停止XXXXXXP5通讯服务**********************************
   dfgz2
  ;;

  dfgz3)

echo *************************************开始停止XXXXXX对接入库服务**********************************
   dfgz3
  ;;

  *)

  echo "请输入正确的命令:sh stop.sh all,dfgz1,dfgz2,dfgz3"

   exit 0

  ;;

esac

注:

执行命令 sh stop.sh或者./stop.sh