ubuntuusers.de

Programm per SSH starten, das die SSH Session überdauert

Status: Gelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

Simpsus

Anmeldungsdatum:
19. Dezember 2005

Beiträge: 46

Hallo

ich habe bei mir im Heimnetzwerk den CT - Server laufen und das funktioniert auch alles prächtig. Jetzt folgendes:
ich möchte auf dem Server den BitTorrent Client rtorrent laufen lassen.
Wenn ich mich per ssh einlogge und ihn starte, dann ist er wieder beendet, wenn ich die ssh session schließe. Das ist nicht gut.

Wenn ich ihn auf dem server starte, und mich dann per ssh einlogge, sehe ich den prozess auch mit ps -x (is ja der selbe user), nur kann ich dann nicht seine Ausgabe auf zb tty1 sehen und torrents löschen/adden etc. Das ist auch nicht gut.

Hat jemand eine Idee wie ich

a) den prozess so per ssh starte, dass er die ssh session überdauert oder ncoh besser
b) einen laufenden prozess per ssh in den vordergrund hole (und dann auch wieder in den hintergrund mache)?

danke für die antworten

Bastian

bleistift

Anmeldungsdatum:
16. Februar 2006

Beiträge: 3

Hallo,
ich hab nicht so arg viel Ahnung. Aber soweit ich weiß startet man einen Prozess im Hintergrund indem man ans Ende des Befehls ein
kaufmännisches "Und" (also ein Ampersand: &) anfügt.
Dann bekommt man glaub ich eine Ausgabezeile präsentiert wo man mitgeteilt bekommt welche Nummer dem Prozess zugewissen wurde.
Und über diese Nummer kann man den Prozess dann auch wieder in den Vordergrund holen. Leider weiß ich grad nicht genau wie die entsprechenden Befehle heißen. Ich glaub fg und dann die Nummer um den Prozess in den Vordergrund zu holen.

Simpsus

(Themenstarter)

Anmeldungsdatum:
19. Dezember 2005

Beiträge: 46

Ich habe leider auch nicht soviel Ahnung, aber ich glaube das sind jobs. und die sind auch wiederrum an die session gebunden. ich weiss allerdings nicht ob das stimmt...

MissM@rple

Avatar von MissM@rple

Anmeldungsdatum:
6. Februar 2005

Beiträge: 53

Wohnort: Magdeburg

Wenn du das gewünscht Programm mit nohup startest, läuft der Prozess weiter, auch wenn der Elternprozess (also ssh-Session) beendet wird.

~/$ nohup rtorrent

hobo

Anmeldungsdatum:
18. April 2005

Beiträge: 120

Wohnort: Syke bei Bremen

1. Möglichkeit ist nohup (wie einen höher beschrieben).

2. Möglichkeit: Das Programm im Hintergrund starten (mit % Kaufmannsund). Falls du das vergessen hast geht das auch nachtäglich: <strg>+z hält den VOrdergrundprozess an, mit bg schickst du ihn in den Hintergrund. Mit fg kann er wieder nach vorne geholt werden. Der Befehl jobs zeigt dir die Hintergundprozesse an. Wenn es mehr als einer sind kannst du mit %1, %2, usw. den jeweiligen auswählen (also fg %2 holt den 2. Projess aus der Jobliste nach vorne).

So, nu hängen die Prozesse aber immer noch an der Shell und werden beim beenden der Shell auch beendet. Abhilfe schaft disown (bzw. disown %2 für den 2. Prozess der Liste).

Nun ist der Prozess von der Shell abgekoppelt (was man durch Eingabe von jobs überprüfen kann) und läuft auch ohne Shell weiter.

Hope this helps,
Holger

SirSiggi

Avatar von SirSiggi

Anmeldungsdatum:
12. September 2005

Beiträge: 823

Bevor man Prozesse abkuppelt etc. sollte man sich mal screen ansehen. Damit kann man wunderbar virtuelle Sessions erstellen, die natürlich auch weiterlaufen wenn die SSH Sitzung beendet wurde.

Kleiner Tip:
mit STRG+D kann man die Session "detachen" (also von seiner Konsole lösen und in den Hintergrund schieben)
mit screen -r kann man dann so eine Session wieder aufnehmen, sind mehrere vorhanden kommt dann eine Anzeige der vorhandenen, von der man dann wählen muss.

Chrissss Team-Icon

Anmeldungsdatum:
31. August 2005

Beiträge: 37971

SirSiggi, kleiner Fehler, man "detached" eine Session mit

Strg+A und danach D

mit Strgd+D killt man den aktuellen Screen 😉

Tschuess
Chritoph

Neonightmare

Avatar von Neonightmare

Anmeldungsdatum:
21. September 2005

Beiträge: 137

Wohnort: Switzerland

Guten Morgen

Irgendwie funktioniert das bei mir nicht.
Ich habe screen gestartet und mit

screen -S s1

und

screen -S s2

zwei screens erstellt.
nun funktioniert das wechseln der screens leider nicht...

neonightmare@ubuntuserver:~$ screen -r s1
There is a screen on:
        4355.s1 (Attached)
There is no screen to be resumed matching s1.
neonightmare@ubuntuserver:~$ screen -r s2
There is a screen on:
        4374.s2 (Attached)
There is no screen to be resumed matching s2.
neonightmare@ubuntuserver:~$ screen -ls
There are screens on:
        4374.s2 (Attached)
        4355.s1 (Attached)
        4334.pts-0.ubuntuserver (Detached)
3 Sockets in /var/run/screen/S-neonightmare.

neonightmare@ubuntuserver:~$ 

Ich kann nicht von einem screen in den anderen wechseln und wenn ich z.Bsp. rtorrent starte, funktioniert die Tastenkombination Ctrl+A D auch nicht...

Kann mir jemand weiterhelfen?

THX
Neo

Neonightmare

Avatar von Neonightmare

Anmeldungsdatum:
21. September 2005

Beiträge: 137

Wohnort: Switzerland

So, ich habs geschafft 😀

zuerst

ssh 192.159.1.10


dann mit

screen

screen gestartet, anschliessend mit

rtorrent

den Bittorentclient gestartet. Mit CTRL+A->D konnte ich den screen detachen.
Nun konnte ich die SSH-Session trennen

exit

neu verbinden mit

ssh 192.159.1.10

und mit

screen -ls

die screens auflisten und den entsprechenden namedesscreens merken. Nun mit

screen -r namedesscreens

wieder verbinden oder nur mit

screen -r

den detachten screen wieder sichtbar machen!

siehe auch SSH für weitere Informationen!

greets NEO

Forumposter

Anmeldungsdatum:
21. März 2006

Beiträge: 159

Das Problem ist, dass rtorrent Strg+D als "Download Anhalten" deklariert hat.
Vor dem gleichen Problem stehe ich nämlich auch gerade.

Neonightmare

Avatar von Neonightmare

Anmeldungsdatum:
21. September 2005

Beiträge: 137

Wohnort: Switzerland

Hallo

Also CTRL+D ist nicht gleich CTRL+A->D!
Du musst CTRL drücken und halten, anschliessend A drücken und halten und zum Schluss noch D drücken und alle drei Tasten losslassen.

greets Neo

JanNocke

Anmeldungsdatum:
28. Juni 2006

Beiträge: 21

Ich bin wirklich ein Leihe bei Screen. Normalerweise ist es die "Strg" Taste und gleichzeitig die "a" (kleines a) Taste und dann ein d (kleines deh). Du kannst die Tasten beliebig in der ~/screenrc einbinden. Hilft euch das weiter?

Antworten |