Puncte:1

Serverul Tomcat care rulează aplicația Springboot închide brusc conexiunea la serverul smtp

drapel ru

Am un server Tomcat care rulează o aplicație Spring Boot pe o gazdă care utilizează CentOS 8 care se conectează la un client de e-mail folosind SMTP. Problema este că se închide brusc conexiunea înainte ca strângerea de mână TLS să aibă loc cu o opțiune STARTTLS. Funcționează OK cu alte noduri care rulează CentOS 7 și serverul Oracle Linux. Problema nu poate fi cu aplicația, altfel nu ar funcționa pe niciun nod. Am verificat folosind Wireshark pentru a vedea că nodul nostru aplicație a terminat conexiunea. Iată transcrierea comunicării TCP pe care am înregistrat-o folosind tcpdump.

220 mta1.***.local ESMTP Postfix
EHLO ****
250-mta1.***.local
250-CONDUCERE
250 - DIMENSIUNEA 69730304
250-VRFY
250-ETRN
250-STARTTLS
250-CODURI DE STARE ÎMBUNĂTĂTATE
250-8BITMIME
250 DSN
STARTTLS
220 2.0.0 Gata pentru pornirea TLS

Și nimic după aceea. Încetarea conexiunii a fost bruscă, fără timeout sau ceva de genul acesta. De asemenea, am verificat pentru fișierul server.xml pentru orice setări, nu a fost menționat nicio mențiune de e-mail sau smtp în niciun fel.

Am încercat același lucru folosind openssl și funcționează, pornind cu succes TLS prin conexiune smtp, deci nu este problema cu serverul care nu acceptă opțiunea. Are cineva idee de ce s-ar fi putut întâmpla asta?

openssl s_client -connect smtp.****.gov.**:587 -starttls smtp

Fișierul meu catalina.sh

#!/bin/sh
cygwin=fals
darwin=fals
os400=fals
hpux=fals
cazul „`uname`” în
CYGWIN*) cygwin=adevărat;;
Darwin*) darwin=adevarat;;
OS400*) os400=adevărat;;
HP-UX*) hpux=true;;
esac

# rezolva link-uri - $0 poate fi un softlink
PRG="$0"

în timp ce [ -h „$PRG” ]; do
  ls=`ls -ld "$PRG"`
  link=`expr "$ls": '.*-> \(.*\)$'`
  if expr "$link": '/.*' > /dev/null; atunci
    PRG="$link"
  altfel
    PRG=`dirname "$PRG"`/"$link"
  fi
Terminat

# Obțineți variabile de mediu standard
PRGDIR=`dirname "$PRG"`

# Setați CATALINA_HOME numai dacă nu este deja setat
[ -z "$CATALINA_HOME" ] && CATALINA_HOME=`cd "$PRGDIR/.." >/dev/null; pwd`

# Copiați CATALINA_BASE din CATALINA_HOME dacă nu este deja setat
[ -z "$CATALINA_BASE" ] && CATALINA_BASE="$CATALINA_HOME"

# Asigurați-vă că nicio variabilă CLASSPATH definită de utilizator nu este utilizată la pornire,
# dar permiteți-le să fie specificate în setenv.sh, în cazuri rare când este necesar.
CLASSPATH=

if [ -r "$CATALINA_BASE/bin/setenv.sh" ]; atunci
  . „$CATALINA_BASE/bin/setenv.sh”
elif [ -r "$CATALINA_HOME/bin/setenv.sh" ]; atunci
  . „$CATALINA_HOME/bin/setenv.sh”
fi

# Pentru Cygwin, asigurați-vă că căile sunt în format UNIX înainte de a atinge orice
if $cygwin; atunci
  [ -n „$JAVA_HOME” ] && JAVA_HOME=`cygpath --unix „$JAVA_HOME”`
  [ -n „$JRE_HOME” ] && JRE_HOME=`cygpath --unix „$JRE_HOME”`
  [ -n "$CATALINA_HOME" ] && CATALINA_HOME=`cygpath --unix "$CATALINA_HOME"`
  [ -n "$CATALINA_BASE" ] && CATALINA_BASE=`cygpath --unix "$CATALINA_BASE"`
  [ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
fi

# Asigurați-vă că nici CATALINA_HOME, nici CATALINA_BASE nu conține două puncte
# deoarece acesta este folosit ca separator în classpath și Java oferă nr
# mecanism de scăpare dacă în cale apare același caracter.
cazul $CATALINA_HOME în
  **:*) echo „Utilizarea CATALINA_HOME: $CATALINA_HOME”;
       echo „Nu se poate porni deoarece CATALINA_HOME conține un caracter două puncte (:)”;
       ieșirea 1;
esac
caz $CATALINA_BASE în
  **:*) echo "Utilizarea CATALINA_BASE: $CATALINA_BASE";
       echo „Nu se poate porni deoarece CATALINA_BASE conține un caracter două puncte (:)”;
       ieșirea 1;
esac

# Pentru OS400
dacă $os400; atunci
  # Setați prioritatea jobului la standard pentru interactiv (interactiv - 6) prin utilizarea
  # prioritatea interactivă - 6, firele helper care răspund la solicitări
  # va rula cu aceeași prioritate ca și joburile interactive.
  COMMAND='chgjob job('$JOBNAME') runpty(6)'
  sistem $COMMAND

  # Activați mai multe fire
  exportați QIBM_MULTI_THREADED=Y
fi

# Obțineți variabile de mediu Java standard
dacă $os400; atunci
  # -r va funcționa numai pe os400 dacă fișierele sunt:
  # 1. deținut de utilizator
  # 2. deținut de grupul PRIMAR al utilizatorului
  # acest lucru nu va funcționa dacă utilizatorul aparține unor grupuri secundare
  . „$CATALINA_HOME”/bin/setclasspath.sh
altfel
  if [ -r "$CATALINA_HOME"/bin/setclasspath.sh ]; atunci
    . „$CATALINA_HOME”/bin/setclasspath.sh
  altfel
    echo „Nu se poate găsi $CATALINA_HOME/bin/setclasspath.sh”
    echo „Acest fișier este necesar pentru a rula acest program”
    iesirea 1
  fi
fi

# Adăugați fișiere jar suplimentare în CLASSPATH
dacă [ ! -z „$CLASSPATH” ] ; atunci
  CLASSPATH="$CLASSPATH":
fi
CLASSPATH="$CLASSPATH""$CATALINA_HOME"/bin/bootstrap.jar

if [ -z "$CATALINA_OUT" ] ; atunci
  CATALINA_OUT=/home/*****/logs/catalinalogs/catalina.out
fi

if [ -z "$CATALINA_TMPDIR" ] ; atunci
  # Definiți java.io.tmpdir de utilizat pentru Catalina
  CATALINA_TMPDIR="$CATALINA_BASE"/temp
fi

# Adăugați tomcat-juli.jar la classpath
# tomcat-juli.jar poate fi supraîncărcat în fiecare caz
if [ -r "$CATALINA_BASE/bin/tomcat-juli.jar" ] ; atunci
  CLASSPATH=$CLASSPATH:$CATALINA_BASE/bin/tomcat-juli.jar
altfel
  CLASSPATH=$CLASSPATH:$CATALINA_HOME/bin/tomcat-juli.jar
fi

# Bugzilla 37848: Când nu este disponibil niciun TTY, nu trimiteți la consolă
have_tty=0
dacă [-t 0 ]; atunci
    have_tty=1
fi

# Pentru Cygwin, comutați căile la formatul Windows înainte de a rula java
if $cygwin; atunci
  JAVA_HOME=`cygpath --absolute --windows „$JAVA_HOME”`
  JRE_HOME=`cygpath --absolute --windows „$JRE_HOME”`
  CATALINA_HOME=`cygpath --absolute --windows „$CATALINA_HOME”`
  CATALINA_BASE=`cygpath --absolute --windows „$CATALINA_BASE”`
  CATALINA_TMPDIR=`cygpath --absolute --windows „$CATALINA_TMPDIR”`
  CLASSPATH=`cygpath --path --windows „$CLASSPATH”`
  [ -n „$JAVA_ENDORSED_DIRS” ] && JAVA_ENDORSED_DIRS=`cygpath --path --windows „$JAVA_ENDORSED_DIRS”`
fi

if [ -z "$JSSE_OPTS" ] ; atunci
  JSSE_OPTS="-Djdk.tls.ephemeralDHKeySize=2048"
fi
JAVA_OPTS="$JAVA_OPTS $JSSE_OPTS"

# Înregistrați handlere de adrese URL personalizate
# Faceți acest lucru aici, astfel încât mânerele URL personalizate (în special „război:...”) să poată fi folosite în politica de securitate
JAVA_OPTS="$JAVA_OPTS -Djava.protocol.handler.pkgs=org.apache.catalina.webresources"

# Setați fișierul de configurare juli LogManager dacă este prezent și nu a fost emisă o modificare
dacă [ -z „$LOGGING_CONFIG” ]; atunci
  if [ -r "$CATALINA_BASE"/conf/logging.properties ]; atunci
    LOGGING_CONFIG="-Djava.util.logging.config.file=$CATALINA_BASE/conf/logging.properties"
  altfel
    # Bugzilla 45585
    LOGGING_CONFIG="-Dnop"
  fi
fi

dacă [ -z „$LOGGING_MANAGER” ]; atunci
  LOGGING_MANAGER="-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"
fi

# Setați UMASK dacă nu a fost suprascris
dacă [ -z "$UMASK" ]; atunci
    UMASK="0027"
fi
umask $UMASK

# Java 9 nu mai acceptă java.endorsed.dirs
# proprietatea sistemului. Încearcă să-l folosești doar dacă
# JAVA_ENDORSED_DIRS a fost setat în mod explicit
# sau CATALINA_HOME/aprobat există.
ENDORSED_PROP=ignore.endorsed.dirs
dacă [ -n „$JAVA_ENDORSED_DIRS” ]; atunci
    ENDORSED_PROP=java.endorsed.dirs
fi
if [ -d "$CATALINA_HOME/aprobat" ]; atunci
    ENDORSED_PROP=java.endorsed.dirs
fi

# Faceți umask disponibil când utilizați org.apache.catalina.security.SecurityListener
JAVA_OPTS="$JAVA_OPTS -Dorg.apache.catalina.security.SecurityListener.UMASK=`umask`"

dacă [ -z "$USE_NOHUP" ]; atunci
    dacă $hpux; atunci
        USE_NOHUP="true"
    altfel
        USE_NOHUP="fals"
    fi
fi
dezactivați _NOHUP
if [ "$USE_NOHUP" = "adevărat" ]; atunci
    _NOHUP="nohup"
fi

# Adăugați parametrii specifici de pornire JAVA 9 solicitați de Tomcat
JDK_JAVA_OPTIONS="$JDK_JAVA_OPTIONS --add-opens=java.base/java.lang=ALL-UNNAMED"
JDK_JAVA_OPTIONS="$JDK_JAVA_OPTIONS --add-opens=java.base/java.io=ALL-UNNAMED"
JDK_JAVA_OPTIONS="$JDK_JAVA_OPTIONS --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED"
exportați JDK_JAVA_OPTIONS

# ----- Executați comanda solicitată ---------------------------------------- -

# Bugzilla 37848: scoateți acest lucru numai dacă avem un TTY
if [ $have_tty -eq 1 ]; atunci
  echo „Utilizarea CATALINA_BASE: $CATALINA_BASE”
  echo „Utilizarea CATALINA_HOME: $CATALINA_HOME”
  echo „Utilizarea CATALINA_TMPDIR: $CATALINA_TMPDIR”
  if [ "$1" = "depanare" ] ; atunci
    echo „Utilizarea JAVA_HOME: $JAVA_HOME”
  altfel
    echo „Utilizarea JRE_HOME: $JRE_HOME”
  fi
  echo „Utilizarea CLASSPATH: $CLASSPATH”
  dacă [ ! -z "$CATALINA_PID" ]; atunci
    echo „Utilizarea CATALINA_PID: $CATALINA_PID”
  fi
fi

if [ "$1" = "jpda" ] ; atunci
  dacă [ -z "$JPDA_TRANSPORT" ]; atunci
    JPDA_TRANSPORT="dt_socket"
  fi
  dacă [ -z „$JPDA_ADDRESS” ]; atunci
    JPDA_ADDRESS="localhost:8000"
  fi
  dacă [ -z „$JPDA_SUSPEND” ]; atunci
    JPDA_SUSPEND="n"
  fi
  dacă [ -z "$JPDA_OPTS" ]; atunci
    JPDA_OPTS="-agentlib:jdwp=transport=$JPDA_TRANSPORT,address=$JPDA_ADDRESS,server=y,suspend=$JPDA_SUSPEND"
  fi
  CATALINA_OPTS="$JPDA_OPTS $CATALINA_OPTS"
  schimb
fi

# TODO: Bugzilla 63815
# Acest lucru nu funcționează în prezent (și nu poate fi făcut să funcționeze) dacă valorile sunt utilizate în
# CATALINA_OPTS și/sau JAVA_OPTS necesită ghilimele. Vedea:
# https://bugs.openjdk.java.net/browse/JDK-8234808
if [ "$1" = "depanare" ] ; atunci
  dacă $os400; atunci
    echo „Comanda de depanare nu este disponibilă pe OS400”
    iesirea 1
  altfel
    schimb
    if [ "$1" = "-securitate" ] ; atunci
      if [ $have_tty -eq 1 ]; atunci
        echo „Utilizarea Managerului de securitate”
      fi
      schimb
      exec "$_RUNJDB" "$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
        -D$ENDORSED_PROP="$JAVA_ENDORSED_DIRS" \
        -claspath „$CLASSPATH” \
        -sourcepath „$CATALINA_HOME”/../../java \
        -Djava.security.manager \
        -Djava.security.policy=="$CATALINA_BASE"/conf/catalina.policy \
        -Dcatalina.base="$CATALINA_BASE" \
        -Dcatalina.home="$CATALINA_HOME" \
        -Djava.io.tmpdir="$CATALINA_TMPDIR" \
        org.apache.catalina.startup.Bootstrap „$@” începe
    altfel
      exec "$_RUNJDB" "$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
        -D$ENDORSED_PROP="$JAVA_ENDORSED_DIRS" \
        -claspath „$CLASSPATH” \
        -sourcepath „$CATALINA_HOME”/../../java \
        -Dcatalina.base="$CATALINA_BASE" \
        -Dcatalina.home="$CATALINA_HOME" \
        -Djava.io.tmpdir="$CATALINA_TMPDIR" \
        org.apache.catalina.startup.Bootstrap „$@” începe
    fi
  fi

elif [ "$1" = "rulați" ]; atunci

  schimb
  if [ "$1" = "-securitate" ] ; atunci
    if [ $have_tty -eq 1 ]; atunci
      echo „Utilizarea Managerului de securitate”
    fi
    schimb
    eval exec "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER "$JAVA_OPTS" "$CATALINA_OPTS" \
      -D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
      -claspath "\"$CLASSPATH\"" \
      -Djava.security.manager \
      -Djava.security.policy=="\"$CATALINA_BASE/conf/catalina.policy\"" \
      -Dcatalina.base="\"$CATALINA_BASE\"" \
      -Dcatalina.home="\"$CATALINA_HOME\"" \
      -Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
      org.apache.catalina.startup.Bootstrap „$@” începe
  altfel
    eval exec "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER "$JAVA_OPTS" "$CATALINA_OPTS" \
      -D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
      -claspath "\"$CLASSPATH\"" \
      -Dcatalina.base="\"$CATALINA_BASE\"" \
      -Dcatalina.home="\"$CATALINA_HOME\"" \
      -Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
      org.apache.catalina.startup.Bootstrap „$@” începe
  fi

elif [ "$1" = "începe" ] ; atunci

  dacă [ ! -z "$CATALINA_PID" ]; atunci
    if [ -f "$CATALINA_PID" ]; atunci
      if [ -s "$CATALINA_PID" ]; atunci
        echo „Fișier PID existent găsit în timpul pornirii”.
        if [ -r "$CATALINA_PID" ]; atunci
          PID=`cat "$CATALINA_PID"`
          ps -p $PID >/dev/null 2>&1
          dacă [ $? -eq 0]; atunci
            echo „Tomcat pare să ruleze în continuare cu PID $PID.Începe avortat."
            echo „Dacă următorul proces nu este un proces Tomcat, eliminați fișierul PID și încercați din nou:”
            ps -f -p $PID
            iesirea 1
          altfel
            echo „Eliminarea/ștergerea fișierului PID învechit”.
            rm -f "$CATALINA_PID" >/dev/null 2>&1
            dacă [ $? != 0 ]; atunci
              if [ -w "$CATALINA_PID" ]; atunci
                cat /dev/null > „$CATALINA_PID”
              altfel
                echo „Nu se poate șterge sau șterge fișierul PID învechit. Începe avortat.”
                iesirea 1
              fi
            fi
          fi
        altfel
          echo „Nu se poate citi fișierul PID. Începe avortat.”
          iesirea 1
        fi
      altfel
        rm -f "$CATALINA_PID" >/dev/null 2>&1
        dacă [ $? != 0 ]; atunci
          dacă [ ! -w "$CATALINA_PID" ]; atunci
            echo „Nu se poate elimina sau scrie în fișierul PID gol. Începe avortat.”
            iesirea 1
          fi
        fi
      fi
    fi
  fi

  schimb
  atingeți „$CATALINA_OUT”
  if [ "$1" = "-securitate" ] ; atunci
    if [ $have_tty -eq 1 ]; atunci
      echo „Utilizarea Managerului de securitate”
    fi
    schimb
    eval $_NOHUP "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER "$JAVA_OPTS" "$CATALINA_OPTS" \
      -D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
      -claspath "\"$CLASSPATH\"" \
      -Djava.security.manager \
      -Djava.security.policy=="\"$CATALINA_BASE/conf/catalina.policy\"" \
      -Dcatalina.base="\"$CATALINA_BASE\"" \
      -Dcatalina.home="\"$CATALINA_HOME\"" \
      -Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
      org.apache.catalina.startup.Bootstrap „$@” start \
      >> „$CATALINA_OUT” 2>&1 „&”

  altfel
    eval $_NOHUP "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER "$JAVA_OPTS" "$CATALINA_OPTS" \
      -D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
      -claspath "\"$CLASSPATH\"" \
      -Dcatalina.base="\"$CATALINA_BASE\"" \
      -Dcatalina.home="\"$CATALINA_HOME\"" \
      -Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
      org.apache.catalina.startup.Bootstrap „$@” start \
      >> „$CATALINA_OUT” 2>&1 „&”

  fi

  dacă [ ! -z "$CATALINA_PID" ]; atunci
    eco $! > „$CATALINA_PID”
  fi

  echo „Tomcat a început”.

elif [ "$1" = "oprire" ] ; atunci

  schimb

  SOMMN=5
  dacă [ ! -z „$1” ]; atunci
    ecou $1 | grep „[^0-9]” >/dev/null 2>&1
    dacă [ $? -gt 0 ]; atunci
      SOMMN=1 USD
      schimb
    fi
  fi

  FORTA=0
  if [ "$1" = "-force" ]; atunci
    schimb
    FORTA=1
  fi

  dacă [ ! -z "$CATALINA_PID" ]; atunci
    if [ -f "$CATALINA_PID" ]; atunci
      if [ -s "$CATALINA_PID" ]; atunci
        kill -0 `cat "$CATALINA_PID"` >/dev/null 2>&1
        dacă [ $? -gt 0 ]; atunci
          echo "Fișierul PID a fost găsit, dar fie nu a fost găsit niciun proces care se potrivește, fie utilizatorul actual nu are permisiunea de a opri procesul. Stop avortat."
          iesirea 1
        fi
      altfel
        echo "Fișierul PID este gol și a fost ignorat."
      fi
    altfel
      echo "\$CATALINA_PID a fost setat, dar fișierul specificat nu există. Tomcat rulează? Stop avortat."
      iesirea 1
    fi
  fi

  eval "\"$_RUNJAVA\"" $LOGGING_MANAGER "$JAVA_OPTS" \
    -D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
    -claspath "\"$CLASSPATH\"" \
    -Dcatalina.base="\"$CATALINA_BASE\"" \
    -Dcatalina.home="\"$CATALINA_HOME\"" \
    -Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
    org.apache.catalina.startup.Bootstrap „$@” oprire

  # oprire a eșuat. Portul de închidere este dezactivat? Încercați o ucidere normală.
  dacă [ $? != 0 ]; atunci
    dacă [ ! -z "$CATALINA_PID" ]; atunci
      echo "Comanda de oprire a eșuat. Încercarea de a semnala procesului de oprire prin semnalul sistemului de operare."
      kill -15 `cat "$CATALINA_PID"` >/dev/null 2>&1
    fi
  fi

  dacă [ ! -z "$CATALINA_PID" ]; atunci
    if [ -f "$CATALINA_PID" ]; atunci
      în timp ce [ $SLEEP -ge 0 ]; do
        kill -0 `cat "$CATALINA_PID"` >/dev/null 2>&1
        dacă [ $? -gt 0 ]; atunci
          rm -f "$CATALINA_PID" >/dev/null 2>&1
          dacă [ $? != 0 ]; atunci
            if [ -w "$CATALINA_PID" ]; atunci
              cat /dev/null > „$CATALINA_PID”
              # Dacă Tomcat s-a oprit, nu încercați să forțați o oprire cu un fișier PID gol
              FORTA=0
            altfel
              echo „Fișierul PID nu a putut fi șters sau șters.”
            fi
          fi
          ecou „Tomcat sa oprit”.
          pauză
        fi
        if [ $SLEEP -gt 0 ]; atunci
          somn 1
        fi
        if [ $SLEEP -eq 0 ]; atunci
          ecou „Tomcat nu s-a oprit la timp”.
          dacă [ $FORȚĂ -eq 0 ]; atunci
            echo "Fișierul PID nu a fost eliminat."
          fi
          echo „Pentru a ajuta la diagnosticare, a fost scrisă o descărcare a firului în ieșirea standard.”
          kill -3 `cat "$CATALINA_PID"`
        fi
        SLEEP=`expr $SLEEP - 1`
      Terminat
    fi
  fi

  KILL_SLEEP_INTERVAL=5
  dacă [ $FORȚĂ -eq 1 ]; atunci
    if [ -z "$CATALINA_PID" ]; atunci
      echo „Uciderea a eșuat: \$CATALINA_PID nu a fost setat”
    altfel
      if [ -f "$CATALINA_PID" ]; atunci
        PID=`cat "$CATALINA_PID"`
        echo „Uciderea lui Tomcat cu PID: $PID”
        ucide -9 $PID
        în timp ce [ $KILL_SLEEP_INTERVAL -ge 0 ]; do
            kill -0 `cat "$CATALINA_PID"` >/dev/null 2>&1
            dacă [ $? -gt 0 ]; atunci
                rm -f "$CATALINA_PID" >/dev/null 2>&1
                dacă [ $? != 0 ]; atunci
                    if [ -w "$CATALINA_PID" ]; atunci
                        cat /dev/null > „$CATALINA_PID”
                    altfel
                        echo „Fișierul PID nu a putut fi șters.”
                    fi
                fi
                echo "Procesul Tomcat a fost ucis."
                pauză
            fi
            dacă [ $KILL_SLEEP_INTERVAL -gt 0 ]; atunci
                somn 1
            fi
            KILL_SLEEP_INTERVAL=`expr $KILL_SLEEP_INTERVAL - 1 `
        Terminat
        dacă [ $KILL_SLEEP_INTERVAL -lt 0 ]; atunci
            echo "Tomcat nu a fost ucis complet încă. Procesul ar putea fi în așteptare la un apel de sistem sau ar putea fi NEÎNTRERUPTĂ."
        fi
      fi
    fi
  fi

elif [ "$1" = "configtest" ] ; atunci

    eval "\"$_RUNJAVA\"" $LOGGING_MANAGER "$JAVA_OPTS" \
      -D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
      -claspath "\"$CLASSPATH\"" \
      -Dcatalina.base="\"$CATALINA_BASE\"" \
      -Dcatalina.home="\"$CATALINA_HOME\"" \
      -Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
      org.apache.catalina.startup.Bootstrap configtest
    rezultat=$?
    if [ $rezultat -ne 0 ]; atunci
        echo "Eroare de configurare detectată!"
    fi
    exit $result

elif [ "$1" = "versiune" ] ; atunci

    „$_RUNJAVA” \
      -claspath „$CATALINA_HOME/lib/catalina.jar” \
      org.apache.catalina.util.ServerInfo

altfel

  echo „Utilizare: catalina.sh (comenzi...)”
  echo "comenzi:"
  dacă $os400; atunci
    echo " debug Porniți Catalina într-un depanator (nu este disponibil pe OS400)"
    echo " debug -security Debug Catalina cu un manager de securitate (nu este disponibil pe OS400)"
  altfel
    echo " debug Porniți Catalina într-un depanator"
    echo " debug -security Debug Catalina cu un manager de securitate"
  fi
  echo " jpda start Start Catalina sub JPDA debugger"
  echo " rulați Start Catalina în fereastra curentă"
  echo " run -security Începe în fereastra curentă cu managerul de securitate"
  echo " începe Porniți Catalina într-o fereastră separată"
  echo " start -security Începe într-o fereastră separată cu managerul de securitate"
  echo " stop Stop Catalina, asteptand pana la 5 secunde pentru ca procesul sa se termine"
  echo „ stop n Stop Catalina, așteptând până la n secunde până la încheierea procesului”
  echo " stop -force Stop Catalina, așteptați până la 5 secunde și apoi folosiți kill -KILL dacă încă rulați"
  echo " stop n -force Opriți Catalina, așteptați până la n secunde și apoi folosiți kill -KILL dacă încă rulați"
  echo " configtest Rulați o verificare de bază a sintaxei pe server.xml - verificați codul de ieșire pentru rezultat"
  echo " versiune Ce versiune de tomcat rulezi?"
  echo „Notă: așteptarea încheierii procesului și utilizarea opțiunii -force necesită definirea \$CATALINA_PID”
  iesirea 1

fi

Fișierul meu setenv.sh

# -Xms/Xmx
# Xms Setează dimensiunea inițială a Heap-ului
# Xmx setează dimensiunea maximă a heap-ului.
# http://stackoverflow.com/questions/16087153/what-happens-when-we-set-xmx-and-xms-equal-size
# http://crunchify.com/jvm-tuning-heapsize-stacksize-garbage-collection-fundamental/
export JAVA_OPTS="$JAVA_OPTS -Xms3072m -Xmx3072m"


Manish Adhikari avatar
drapel ru
Răspunde cineva la asta?

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.