Linux: Beispiel für das Bearbeiten des Start-, Stopp- und Neustartskripts für Springboot-JAR-Pakete

Linux: Beispiel für das Bearbeiten des Start-, Stopp- und Neustartskripts für Springboot-JAR-Pakete

Vorwort

In der Springboot-Konfigurationsdatei haben die Namen der Konfigurationsdateien ihre eigene Bedeutung und Verwendung

  • dev-Entwicklungsumgebung
  • prod Produktionsumgebung (Standard)
  • Test-Testumgebung

Laden Sie das angegebene Profil --spring.profiles.active=prod

Springboot lädt JAR-Pakete auf folgende Weise:

// Direkt in der Konsole starten. Der Nachteil ist, dass das Projekt geschlossen wird, wenn die Konsole geschlossen wird.
java -jar bootdo.jar
// Diese Methode kann im Hintergrund ausgeführt werden, aber wenn die Shell gestartet wird, bleibt sie auch hängen java -jar /bootdo-2.0.0.jar > bootdolog.file 2>&1 &
// Wenn nohup hinzugefügt wird, wird es nicht beeinflusst, selbst wenn die Shell beendet wird.
nohup java -jar /bootdo-2.0.0.jar > bootdolog.file 2>&1 &

erklären

nohup bedeutet permanentes Laufen. & zeigt den Hintergrundvorgang an

> stellt dar, wohin weitergeleitet werden soll

1 bedeutet stdout-Standardausgabe, der Systemstandardwert ist 1, daher ist ">/dev/null" gleichbedeutend mit "1>/dev/null"

2 bedeutet stderr Standardfehler

nohup ./mqnamesrv >/home/cxb/mqnamesrv.out 2>&1 & Das heißt, die Standardausgabe wird an mqnamesrv.out gesendet. Anschließend wird die Standardfehlerausgabe in dieselbe Datei wie die Standardausgabe umgeleitet.

Nachdem der Server auf die folgende Weise erfolgreich gestartet wurde, müssen Sie, sofern ein Neustart erforderlich ist, die Prozess-ID über ps -ef | grep bootdo abfragen, ihn anschließend über kill -s 9 ${pid} beenden und neu starten, was sehr mühsam ist.

nohup java -jar /bootdo-2.0.0.jar > bootdolog.file 2>&1 & 

Es ist ok, wenn es ein- oder zweimal passiert, aber wenn es mehrmals passiert, wird es etwas überwältigend sein.

Auf diese Weise können Sie ein Shell-Skript schreiben, um Vorgänge in einem Schritt zu starten (starten), zu stoppen (stoppen) und neu zu starten (neu starten), was bequem und effizient ist

Erstellen Sie ein wss.sh-Skript in einem benutzerdefinierten Verzeichnis und bearbeiten Sie den Inhalt wie folgt.

#!/bin/bash
#Dies kann durch Ihr eigenes ausführbares Programm ersetzt werden. Es muss kein anderer Code geändert werden APP_NAME=websocketserver-0.0.1-SNAPSHOT.jar
 
#Gebrauchsanweisung, die zur Eingabeaufforderung für Parameter verwendet wird usage() {
 echo "Verwendung: sh-Skriptname.sh [Start|Stopp|Neustart|Status]"
 Ausfahrt 1
}
 
# Prüfen, ob das Programm läuft is_exist(){
 pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' `
 # Wenn es nicht existiert, gib 1 zurück; wenn es existiert, gib 0 zurück 
 wenn [ -z "${pid}" ]; dann
 Rückgabe 1
 anders
 Rückgabe 0
 fi
}
 
#Startmethode start(){
 existiert
 wenn [ $? -eq "0" ]; dann
 echo "${APP_NAME} läuft bereits. pid=${pid} ."
 anders
 nohup java -jar /mnt/ssd1/project/websocket/$APP_NAME > /mnt/ssd1/project/websocket/websocketserverlog.file 2>&1 &
 echo "${APP_NAME} erfolgreich gestartet"
 fi
}
 
#Stopp-Methode stop(){
 existiert
 wenn [ $? -eq "0" ]; dann
 töten -9 $pid
 anders
 echo "${APP_NAME} läuft nicht"
 fi 
}
 
# Ausgabe des laufenden Status status(){
 existiert
 wenn [ $? -eq "0" ]; dann
 echo "${APP_NAME} läuft. Pid ist ${pid}"
 anders
 echo "${APP_NAME} läuft NICHT."
 fi
}
 
#Neustart restart(){
 stoppen
 Start
}
 
#Wählen Sie entsprechend den Eingabeparametern die entsprechende auszuführende Methode aus. Wenn keine Eingabe erfolgt, wird die Methode ausgeführt. Anweisungen für den Anwendungsfall „$1“ in
 "Start")
 Start
 ;;
 "stoppen")
 stoppen
 ;;
 "Status")
 Status
 ;;
 "Neustart")
 Neustart
 ;;
 *)
 Verwendung
 ;;
esac 

Konfigurieren Sie den Startbefehl in der rot markierten Zeile.

Danach können Sie mit wss.sh start | stop | restart starten, stoppen und neu starten.

Hinzufügen

Unterschied zwischen sh xxx.sh und ./xxx.sh

sh xxx.sh benötigt keine Ausführungsberechtigung

./xxx.sh muss über Ausführungsberechtigung verfügen, die über chmod +x xxx.sh erteilt werden kann.

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • Mit Springboot kann das JAR-Paket als Dienst gestartet werden
  • Mit Springboot kann das JAR-Paket als Dienst gestartet werden
  • Ein ausführliches Tutorial zum Erstellen, Verpacken und Starten von Jar- und War-Paketen in SpringBoot
  • SpringBoot-Projekt, Ausführen einer JAR-Paket-Startvorgangsschritt-Prozessanalyse
  • So starten Sie das SpringBoot-JAR-Paket

<<:  Vue implementiert unregelmäßige Screenshots

>>:  Lösen Sie das Gruppieren-nach-Abfrage-Problem nach dem Upgrade von Mysql auf 5.7

Artikel empfehlen

So verbinden Sie eine virtuelle Linux-Maschine mit WLAN

Im Leben ist das Internet allgegenwärtig. Wir kön...

Tutorial: Nginx-Reverse-Proxy-Konfiguration zum Entfernen von Präfixen

Wenn Sie nginx als Reverse-Proxy verwenden, könne...

MySQL-Leistungsoptimierungs-Index-Pushdown

Index Condition Pushdown (ICP) wird in MySQL 5.6 ...

SQL zur Implementierung der Wiederherstellung einer Zeitreihenversetzung

Inhaltsverzeichnis 1. Anforderungsbeschreibung 2....

Detaillierte Erklärung der MySQL Truncate-Verwendung

Inhaltsverzeichnis MySQL Truncate-Verwendung 1. T...

Beispielcode zur Implementierung des wellenförmigen Wasserballeffekts mit CSS

Heute habe ich einen neuen CSS-Spezialeffekt gele...

Über Front-End JavaScript ES6 Details

Inhaltsverzeichnis 1. Einleitung 1.1 Babel-Transc...

Beispielcode für Nginx zur Erreichung dynamischer und statischer Trennung

1. Einfache Konfiguration der dynamischen und sta...