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

Ergänzender Artikel zur Front-End-Performance-Optimierung

Vorwort Ich habe mir die zuvor veröffentlichten A...

So überwachen Sie Oracle-Datenbanken mit Zabbix Agent2

Überblick In Zabbix Version 5.0 und höher wurde e...

Zabbix benutzerdefinierte Überwachung Nginx Status Implementierungsprozess

Inhaltsverzeichnis Zabbix benutzerdefinierte Über...

Zusammenfassung der HTML-Wissenspunkte für das Frontend (empfohlen)

1. HTML-Übersicht htyper Textauszeichnungssprache...

Grundkenntnisse der MySQL-Datenbank

Inhaltsverzeichnis 1. Datenbanken verstehen 1.1 D...

Tutorial zur Remote-Verbindung mit einer MySQL-Datenbank unter Linux

Vorwort Ich bin kürzlich bei der Arbeit auf diese...

Installieren Sie die MySQL5.5-Datenbank in einer CentOS7-Umgebung

Inhaltsverzeichnis 1. Prüfen Sie, ob MySQL auf de...

So importieren Sie chinesische Daten in Navicat für SQLite in CSV

In diesem Artikel erfahren Sie zu Ihrer Informati...

MySQL-Lösung für die Konfiguration mehrerer Instanzen

1.1 Was ist MySQL Multi-Instance? Einfach ausgedr...

Tipps zur Verwendung von Vue-Elementen und Nuxt

1. Konvertierung des Übermittlungsformats für die...

Tutorial zur Installation und Konfiguration von Hbase unter Linux

Inhaltsverzeichnis Hbase-Installation und -Konfig...