Ich habe ein Glas, das für immer läuft (Endlosschleife mit Socket-Listening-Thread) und brauche es, um jederzeit im Hintergrund zu laufen. Ein Beispiel wäre: "java -jar test.jar" Wie mache ich das? Danke im Voraus!
verschiedene Wege:
&
hinten anhängen . Auf diese Weise wird das Programm jedoch weiterhin beendet, wenn Sie das Terminal geschlossen haben, mit dem das Programm gestartet wurde.
Starten Sie eine screen
Sitzung und starten Sie das darin enthaltene Programm. Sie können die screen
Sitzung trennen und das Terminal schließen. Später können Sie erneut eine Verbindung zur Sitzung herstellen und befinden sich wieder auf der Konsole, als wären Sie die ganze Zeit dort gewesen. Sie müssen jedoch eine Bildschirmsitzung starten, bevor Sie das Programm ausführen. Wenn Sie dies vergessen haben, können Sie nichts dagegen tun.
Verwenden Sie die disown
Jobsteuerung von Ihrer Shell aus. Dadurch wird die Aufgabe von Ihrem tty getrennt und Ihr Programm wird nicht beendet, wenn das tty geschlossen wird. Ich glaube jedoch nicht, dass es eine Möglichkeit gibt, einen abgelehnten Job wieder herzustellen.
Eine Eingabeaufforderung, die ich immer für lange Laufzeiten verwendet habe, um Abmeldungen zu überstehen, ist "nohup", in Ihrem Fall also
nohup java -jar test.jar &
Das & ist wichtig, damit Sie eine andere Shell zum Laufen bringen können. Ich glaube, dass dies nicht durch Neustarts dauern wird.
Wenn mit "jederzeit" gemeint ist, dass es beim Starten des Computers gestartet wird, müssen Sie es als Teil der Startzeitskripte starten. Der schmutzige Weg, dies zu tun, ist hinzuzufügen
java -jar test.jar> / dev / null 2> & 1 &
nach /etc/rc.local (oder ersetzen Sie / dev / null durch Ihre bevorzugte Protokolldatei).
Besser wäre es, ein init.d-Skript zu erstellen, das auf den entsprechenden Runlevels gestartet wird (Sie möchten es möglicherweise nicht auf Runlevel 0, 1 oder 6, zum Beispiel). Auf diese Weise können Sie es auch automatisch neu starten lassen, wenn es stirbt, und eine schönere Oberfläche haben, um es vorübergehend zu stoppen.
Kleine Beispiele unter http://www.howtoforge.com/forums/archive/index.php/t-3628.html
Große Erklärung unter http://developer.novell.com/wiki/index.php/Writing_Init_Scripts
Der Operator & erzwingt, dass der Prozess im Hintergrund ausgeführt wird. Anschließend können Sie den Befehl 'top' ausführen, um festzustellen, ob er ausgeführt wird.
quelle
Sie können jede Aufgabe im Hintergrund unter Linux ausführen, indem Sie ein '&' Symbol an das Ende der Befehlszeile anhängen, z
quelle
Sie können die Community-Version des Java Service Wrapper verwenden, die hier erhältlich ist:
http://wrapper.tanukisoftware.org/doc/english/download.jsp
Sie können es dann beim Neustart starten lassen:
http://wrapper.tanukisoftware.org/doc/english/launch-nix-boot-debian.html
quelle
Setzen Sie
&
am Ende:java -jar test.jar &
quelle