# Java Programm über SSH starten



## Cook13 (21. Mrz 2012)

Hi Leute,

ich hab ein Problem. Und zwar will ich über ssh ein  Javaprogramm auf dem Server starten. Ich nutze folgenden Command:  ssh user1@server_ip 'bash -s' < /home/user1/workspace/Server_Starter.sh Das Shellcript führt dann das Javaprogramm auf dem Server aus. Jetzt hab ich aber das Problem, dass der nicht danach wieder automatisch disconnected, sondern so lange der Prozess/das Java Programm läuft, die SSH-Session offen hält. Gibt es nen Weg ein Javaprogramm über ssh zu starten und direkt wieder disconnected, obwohl der Prozess noch läuft?

Vielen Dank für Eure Hilfe! 

Lg, 
Cookie


----------



## faetzminator (21. Mrz 2012)

Zum Beispiel mit [c]&[/c]. Also z.B. statt [c]rm -rf /[/c] einfach [c]rm -rf / &[/c] verwenden  Allerdings solltest du den Output- und Errorstream noch in ein Logfile o.ä. umleiten.


----------



## timbeau (21. Mrz 2012)

& wird nicht funktionieren meines Wissens. Da auch bei "&" der Elternprozess die SSH-Shell ist. 

Schau dir mal 4.66 screen an


----------



## Cook13 (21. Mrz 2012)

Vielen Dank für die super schnelle Antwort!

Ja, das habe ich natürlich auch schon probiert.
Hat aber leider nicht funktioniert. :/
Die Session wird nicht automatisch geschlossen sondern ich muss immer mit einem STRG + C das Programm ,,beenden''.
Wobei das Programm im Hintergrund dann weiterläuft.
Das ganze soll aber automatisch ohne User-Interaktion  (ohne STRG + C ) ablaufen.

Also meine Absicht ist:
1. Ich connecte auf meinen 1. Server per SSH über den oben genannten Command.
2. Das Script wird gestartet, welches mein Javaprogramm startet.
3. Die SSH-Session wird beendet.
4. Ich connecte auf meinen 2. Server und fahre mit dem 1. Punkt fort.


----------



## Cook13 (21. Mrz 2012)

@ timbeau
wäre bestimmt eine gute Möglichkeit, aber in der Schule hab ich keine Rechte Programme auf dem Linuxsystem zu installieren ...


----------



## timbeau (21. Mrz 2012)

Ist es nicht drauf? Screen ist eigentlich Standard.


----------



## Cook13 (21. Mrz 2012)

nope, das ist leider nicht installiert!


----------



## faetzminator (21. Mrz 2012)

Naja, notfalls könnte man es mit einem Hack über [c]at[/c] o.ä. machen, aber das wär nicht wirklich schön...


----------



## musiKk (21. Mrz 2012)

Falls das System einen Compiler bietet: Screen kann man auch ziemlich einfach selbst kompilieren und ins home installieren.


----------



## Cook13 (21. Mrz 2012)

Ok musiKk das könnte ich mal testen, wenn ich morgen wieder in da bin.  Danke!
faetzminator was meinst du mit ,,at''? Noch nie davon gehört.


----------



## tfa (21. Mrz 2012)

Um einen Prozess nach dem Abmelden weiter laufen zu lassen, gibt es das praktische Kommando [c]nohup[/c].

nohup - Wikipedia, the free encyclopedia


----------



## Cook13 (21. Mrz 2012)

tfa das ist aber nicht das Problem, dass es nicht weiter läuft. Dass hab ich nämlich schon geschafft. 
Was ich möchte ist, dass die SSH-Session einfach beendet wird. Bisher wartet die Session so lange offen gehalten, wie der
Javaprozess läuft. ;-)


----------



## tfa (21. Mrz 2012)

Und das hier geht nicht?

```
nohup meinprogramm &
exit
```


----------



## Cook13 (21. Mrz 2012)

nein, dann tritt immer noch das gleiche Problem auf.


----------



## HoaX (21. Mrz 2012)

Du gibst die Konsole ja auch nicht frei, d.h. dein SSH-Client hält diese offen solange noch ein Programm an der anderen Seite hängt. Du musst also auch Ein-/Ausgabe des gestarteten Programms umleiten. Wenn ich folgendes in die Datei packe funktioniert das einwandfrei:

```
mplayer http://mp3.webradio.rockantenne.de:80 </dev/null &>/dev/null &
exit
```


----------



## timbeau (21. Mrz 2012)

Stimmt, höre grade rockantenne


----------



## Cook13 (21. Mrz 2012)

Oh man! Danke das ist die Lösung! 
You made my day! :applaus: :toll:


----------

