Technology sharing

Centos environment startup/sileo Java officium script optimization

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

plumbum

Systema compositum ex pluribus applicationibus Javae in ambitu offline explicatis, saepius in probatione temporis dimitti debet. Scriptum sum ut ante incipiam. statim invenire processus correspondentes et tunc occidere et sileo. Alter punctum est fasciculus stipes . Cogitavi de tabulario tabellario historico ad current In tergum folder sub semita.

Partialis mandatum descriptionem

Imprimis affirmare velim me concham novitiam esse et hac in re parum uti.

Query ministerium processus secundum portum

Malo hoc imperio uti. Verbi gratia, ad investigandum processum 8080 portum occupatum, sequenti mandato uti potes

lsof -i:8080
  • 1

processus occiditis

Hoc omnes sciant, occide -9, non simpliciter uteris occide, exempli gratia, processum processus cum processu PID 12345 neca.

kill -9 12345
  • 1

Munus scriptum accipit parametri

Hoc mandatum simplex relativum est, ac proinde ambitus muneris adhibentur.$1,$2,$3…accipere

scriptum

Quia plura officia Javae sunt et etiam notioni reuse adhaerens, communem rationem scribendi cogitavi ut ministerium sileo, et postea scripta scribenda pluribus officiis respondentia ut nomina, portus et alia informationes suas singulis officiis notent. In singulis scriptis officiorum Medium saltum parametrum vocat commune ministerium satus vel sileo modum.

Commune officium startup vel sileo scriptum run.sh

#!/bin/bash

start_app(){
  # 接收参数
  APP_NAME=$1;
  APP_PORT=$2;
  MEM=$3
  ACTION=$4;
  CURRENT_TIME=`date +"%Y%m%d%H%M%S"`
  
  #检查程序是否在运行
  APP_STATUS=`netstat -nlt|grep ${APP_PORT} |wc -l`;
  RUNNING_PID=$(netstat -nlp | grep :$APP_PORT | awk '{print $7}' | awk -F"/" '{ print $1 }');
  LOG_FILE=./logs/${APP_NAME}_${CURRENT_TIME}.log;
  cd ..;
  if [ "${APP_STATUS}" -eq 1 ]; then
    if [ "${ACTION}"x == "restart"x ]; then
      ## 重启前先kill原进程
      echo "kill the running app whose PID is ${RUNNING_PID} of ${APP_NAME}";
      kill -9 "${RUNNING_PID}";
      # 日志归档
      cd logs;
      for file in `ls ${APP_NAME}* -a`;
        do
          mv "${file}" backup/;
        done
      cd ..;
    else
      echo "exist running ${APP_NAME} and the PID is ${RUNNING_PID}";
      exit 0;
    fi
  fi
  echo "start ${APP_NAME} at $CURRENT_TIME";
  ## 启动程序
  nohup java -Xms${MEM}m -Xmx${MEM}m -XX:PermSize=256m -XX:MaxPermSize=512m -jar -Dfile.encoding=utf-8 -Dserver.port=${APP_PORT}  -Dspring.profiles.active=prod ${APP_NAME}  > ${LOG_FILE} 2>&1 &
  pid=`ps -ef|grep java|grep ${APP_NAME}`
  echo "${APP_NAME} has started successfully at ${CURRENT_TIME},and the pid is ${pid}"
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38

Unum officium startup scriptor

#!/bin/bash
action=$1
## 引入通用服务启动脚本
source ./run.sh
#启动方法
start(){
	# 执行通用服务脚本中的启动方法
  start_app xxx.jar 8080 4096 ${action}
}
 
#程序主入口
start

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

Notice

Sileo

Si officium scripturae startup directe exsecutus est sine ambitu parametri, iudicabitur an servitus portus occupatur. Si occupatur, protinus exibit officium inchoatur.

Documenti locus

Involucrum dolium in indice /opt/app situm est, scriptum in directorio /opt/app/run situm est, et index in /opt/app/logorum directorio ponitur in hodierna directorio scriptionis. Si absolutum iter adhibeatur Methodus errorem referet, qui a nonnullis scriptionis modis in scriptione non adhibitis absolutis semitas causari potest solutio nunc.

alius

Occurrit in temptationemrun.sh: xxx行 $'r' 附近有语法错误errore, uti sed -i 's/r$//' run.sh mandatum convertendi.