Ausführen von Java-JAR auf einem Remotecomputer im Fire-and-Forget-Verfahren

Ausführen von Java-JAR auf einem Remotecomputer im Fire-and-Forget-Verfahren

Ich möchte mein Java-JAR auf einem Remote-Computer ausführen, indem ich eine SSH-Verbindung herstelle. Ich kann das JAR ausführen, aber die SSH-Sitzung erst schließen, wenn ich drücke CTRLC.

Unten ist meine Batchdatei zum Ausführen des Jars. Der Name der Batchdatei lautet Run_service.bat

@ECHO off java.exe -jar D:\NSXJarfiles\BulkSolve-0.0.1-SNAPSHOT.jar & exit

Versuch, das JAR mit dem folgenden Befehl aus einer SSH-Sitzung auszuführen

ssh -v -o StrictHostKeyChecking=no -l userid IP "D:/Scripts/Run_Service.bat"

also habe ich eine SSH-Sitzung eingerichtet und kann die JAR-Datei in der Sitzung ausführen.

Der Dienst begann am Hafen.

Aber sobald der Dienst gestartet ist, muss ich die SSH-Sitzung schließen, aber sie wird erst geschlossen, wenn ich drücke CTRLC. Unten sehen Sie das Bild für denselben Dienst, der in der SSH-Sitzung gestartet wurde. Ich habe vieles versucht, aber nichts hat funktioniert. Bitte helfen Sie mir, einen Weg zu finden, dasselbe zu tun.

Bildbeschreibung hier eingeben

Antwort1

Versuche dies :

@ECHO off START /B javaw.exe -jar D:\NSXJarfiles\BulkSolve-0.0.1-SNAPSHOT.jar exit

Antwort2

Es gibt nichts umsonst. Wenn Sie eine App als Dienst ausführen möchten, müssen Sie die App als Dienst installieren. Auf diese Weise wird Ihre Anwendung bei einem Neustart des Betriebssystems ohne menschliches Eingreifen wiederhergestellt. Außerdem können Sie die Verbindung zum SSH-Server trennen und den Prozess weiterlaufen lassen. (Sie könnten auch versuchen cmd /c javaw.exe -jar D:\NSXJarfiles\BulkSolve-0.0.1-SNAPSHOT.jar, aber wenn der Prozess abbricht, wird er nicht wiederhergestellt.)

Für Spring Boot schauen Sie sich dieWindows-DiensteAbschnitt der Referenz, der Sie aufwinsw, und einseparat gepflegtes Beispielum zu beschreiben, wie man alles zusammenbringt

verwandte Informationen