Java Programm als Dienst unter Linux Debian ausführen

marcel_m

Mitglied
Hallo zusammen,

als Linux Neuling habe ich folgendes Problem:

Ich möchte auf einem Debian Server ein Java Programm als Dienst laufen lassen - also rund-um-die-uhr.

Könntetn Ihr mir bitte helfen, wie ich das per SSH regel?

Vielen Dank im Voraus!

Marcel
 
Generell unterscheidet Linux ersteinmal nicht zwischen Deamon- und anderen Prozessen, von daher kannst Du Dein Programm über die rc-Scripte beim Start laden lassen. Wichtig ist nur, daß /keine/ direkte Userinteraktion über das Terminal notwendig ist.

Fraglich ist in meinen Augen ob ein Daemon bzw. Dienst in Java geschrieben werden sollte, nicht jede Maschine hat Java installiert und Java an sich ist im Vergleich zu C auch sehr viel träger, langsamer und ressourcenhungriger.
 
Danke für deine Antwort!
Ja - zugegebener maßen - Java ist nicht gerade Ressourcenfreundlich.

Was ich aber genau suche ist ein Befehl, mit dem eine via SSH gestartetes Kommando auch nach dem die Shel geschlossen ist, weiterläuft.

Gruß Marcel
 
Navy hat gesagt.:
Java an sich ist im Vergleich zu C auch sehr viel träger, langsamer
Da muss ich dich leider korregieren. :)
Das war mal so. Das hat sich aber schon lange geändert. Das was halt auch mehr an Speicherverbrauch da ist, ist die VM. Die braucht halt Speicher.

MFG

Sascha
 
> Da muss ich dich leider korregieren.

Ich Dich auch. Es heißt "korrigieren". [SCNR] ;)

> Das war mal so. Das hat sich aber schon lange geändert. Das was halt auch mehr an
> Speicherverbrauch da ist, ist die VM. Die braucht halt Speicher.

Java ist im Vergleich zu [C|C++] bis zu 10 mal langsamer, da Java meistens nur im Bytecode vorliegt und noch von der VM interpretiert werden muß während äquivalente Programme "direkt" auf der Maschine laufen.

Es ist auch egal warum Java mehr Ressourcen verbraucht, Fakt ist allein der Umstand, dass es das tut. Das ist auch der Grund, warum unter Linux nur sehr wenige (ich kenne im Grunde überhaupt keines) Systemprogramme in Java geschrieben werden. Macht ja auch keinen Sinn, da Java nicht hardwarenah läuft und für ganz andere Zwecke konzeptioniert worden ist. Das heißt aber nicht, daß sowas nicht möglich wäre...
 
Hi,

Da muss ich dich leider korregieren
ich schließe mich an:

da Java meistens nur im Bytecode vorliegt und noch von der VM interpretiert werden muß

Das ist nicht nur meistens so, sondern immer. ;)

Von einer interpretierten Programmiersprache ist Java allerdings auch ziemlich weit entfernt. Der Sourcecode wird ja durchaus in eine Art von Maschinencode kompiliert, der lediglich auf einer virtuellen CPU (in Form der VM) ausgeführt wird.

Und weil Java bis zu 10 Mal langsamer ist als C oder C++ und nicht als Daemon laufen sollte, wird es auch überhaupt nicht im Webserver-Bereich eingesetzt. :p

*scnr*, D.
 
Da irrst du dich leider. Auch wenn es ByteCode ist. Schon mal was vom Just in Time-Compiler gehört?

Hier mal die allgemeine Definition
http://de.wikipedia.org/wiki/JIT-Compiler

Java ist in den meisten Operationen schneller als C/C++. Es gibt kaum was bei dem Java noch langsamer ist. :)

Kannst du mir glauben. Bin nicht umsonst seit 3 Jahren Java-Entwickler. Tom wird die das auch bestätigen. :)

Auch, wenn die VM läuft, in größeren Anwendungen ist das nebensächlich. Wenn man natürlich eine sehr kleine Anwendung schreiben möchte, die kaum Speicher verbraucht, dann ist das natürlich schlecht. Da gebe ich dir recht.

Ich habe ja nicht gesagt, dass es richtig wäre einen Dienst in Java zu schreiben. Wollte nur mal den allgemeinen Irrtum korrigieren. ;-)

MFG

Sascha
 

Neue Beiträge

Zurück