Java Server als Prozess

dadevelopa

Mitglied
Hallo zusammen,
ich bin gerade dabei einen Multithreaded Java Server zu schreiben.
Nun hat sich mir die Frage gestellt, wie ich es schaffe, den Java Prozess zu Starten und den Server anschliessend als selbständigen Prozess laufen zu lassen.
Momentan ist es so, dass die Requests an den Server in einer endlosen while-Schleife entgegengenommen werden. Das Problem dabei: sobald der Server gestarted wird, ist die Konsole, in welcher der Server started, belegt und der Server kann eigentlich nur noch durch ein Kill Kommando gestopt werden.
Ich möchte mein Programm nun so abändern, dass der Prozess verschiedene Nachrichten abfangen und darauf reagieren kann, ausserdem würde ich den Server gerne im Hintergrund als Standalone Applikation starten, welche keine Konsole blockiert.

Als Vorbild was Starten und Stoppen angeht würde mir eigentlich der Tomcatserver zusagen, leider habe ich keine Ahnung von Message Handling usw. in Java.

Kann mir hier irgendwer behilflich sein?

Danke.
 
Also eine Möglichkeit wäre es z.B. unter Windows das Any2service Tool zu nutzen(weiss nicht mehr genau ob es so heisst... damit kann man auch ein Javaprogramm als Dienst laufen lassen, mit Java eigenen Mitteln geht es glaube ich auch, Thomas hatte mal so eine Dämonen-Klasse benutzt wenn ich mich recht erinnere, leider weiss ich nicht mehr wie sie hiess, benutz doch mal die Suchfunktion, vielleicht findest du den Thread....
 
Hallo!

Aslo entweder erstellst du ein einfaches Startskript, dass einfach eine neue Shell startet und dort wiederum die JVM mit deiner Anwendung startet.
Tomcat macht das beispielsweise so... zum stopen wird einfach eine Verbindung auf einen entsprechenden SHUTDOWN_PORT (Siehe server.xml) geoffnet und dann das SHUTDOWN_COMMAND (siehe server.xml) gesendet (geht aber "gott sei dank" ;) nur lokal.

Du koenntest aber auch einen Java Service Wrapper verwenden:
Schau doch mal hier:
http://wrapper.tanukisoftware.org/doc/english/integrate-simple-nix.html

Gruss Tom
 
Zurück