per ssh einen prozess starten der kein kind der ssh ist

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
headless
Beiträge: 60
Registriert: 20.02.2007 13:10:25

per ssh einen prozess starten der kein kind der ssh ist

Beitrag von headless » 21.03.2007 14:34:18

hi,

vielleicht kennt ihr das problem:

man greift per ssh auf einen anderen rechner zu und führt dort ein programm aus, das sehr lange läuft und an den terminal gebunden ist. wenn man dann die ssh-connection beendet stirbt dieser kind-prozess natürlich..

nun kann man das ganze natürlich lösen, indem man den prozess als batch, oder per openvt auf einem anderen terminal ausführt. allerdings bekommt man dann die ausgabe nicht zu gesicht..

kennt ihr eine möglichkeit, wie man diese ausgabe wieder auf die ssh pipen kann, bzw. gibt es eventuell sogar tools mit denen man quasi einen anderen vt fernsteuern kann?

hoffe ich hab mich halbwegs verständlich ausgedrückt,

gruß headless

Benutzeravatar
armin
Beiträge: 2682
Registriert: 17.03.2005 11:49:14

Beitrag von armin » 21.03.2007 14:35:05

screen 8)
Formerly known as Trigger.
HP 8510p - Debian Sid
Mitglied des Debian-KDE-Teams

goecke
Beiträge: 289
Registriert: 12.01.2007 11:57:27

Beitrag von goecke » 21.03.2007 14:37:57

suchst du "screen"

screen starten
- Programm starten
- <CTRL>-A D (bild im Hintergrund)
- (SSh)-Verbindung trennen, ausloggen (nicht den Rechner ausschalten ;-)
- wieder einloggen
- "screen -r"
- "das Prog ist wieder da!"

HTH
Johannes

headless
Beiträge: 60
Registriert: 20.02.2007 13:10:25

Beitrag von headless » 21.03.2007 14:45:08

ui, das ging ja fix, danke :wink:

headless
Beiträge: 60
Registriert: 20.02.2007 13:10:25

Beitrag von headless » 21.03.2007 14:50:54

hmm ganz so einfach ists wohl doch nicht:

srvl001:/lib/terminfo/s# ./screen
-bash: ./screen: cannot execute binary file

oder muss ich da erst nochwas installieren?

nil
Beiträge: 989
Registriert: 08.06.2005 13:28:36

Beitrag von nil » 21.03.2007 14:54:26

Hallo,

um das alles etwas einfacher zu machen habe ich mittlerweile auf sämtlichen Systemen die folgende .bashrc in mein Homeverzeichnis kopiert. Hierdurch läuft alles automatisch (xRR kann auch dRR sein, siehe Manual). So drei Fenster nutze ich im Durchschnitt gleichzeitig, sowohl textuell als auch unter X in einem Terminal.
Nachteil ist vielleicht, dass evtl. SCP nicht mehr funktioniert, in dem Fall muss man andere Konfigurationsdateien nutzen, was jedoch zu anderen Problemen führen kann.

Code: Alles auswählen

~/.bashrc:
if  [ -z $STY ] && [ $TERM != "screen" ]; then
  /usr/bin/screen -xRR;
else
  /usr/bin/screen -X hardstatus alwayslastline '[%H] %Lw%=%u %d.%m.%y %c '
fi 
PS.: natürlich muss man das Paket screen installieren
PS.: obwohl ich meinen Client jeden Tag ausschalte, der Server sagt:

Code: Alles auswählen

On since Mar 12 11:38:39 on pts/5 from :pts/14:S.0
On since Mar 21 07:43:45 on pts/14 from ...
On since Mar 12 11:38:42 on pts/13 from :pts/14:S.2
Zuletzt geändert von nil am 21.03.2007 15:04:28, insgesamt 2-mal geändert.

Benutzeravatar
armin
Beiträge: 2682
Registriert: 17.03.2005 11:49:14

Beitrag von armin » 21.03.2007 14:54:56

Du solltest es auf jeden Fall ohne ./ probieren. Einfach nur screen.
Formerly known as Trigger.
HP 8510p - Debian Sid
Mitglied des Debian-KDE-Teams

headless
Beiträge: 60
Registriert: 20.02.2007 13:10:25

Beitrag von headless » 21.03.2007 15:05:01

hehe ich hab bei suchen erstmal an find gedacht und tatsächlich zwei dateien mit dem namen "screen" gefunden..

mit dem paket funzt das natürlich alles bestens

auch danke für das script

Benutzeravatar
katze
Beiträge: 74
Registriert: 08.01.2005 17:27:47

Beitrag von katze » 21.03.2007 17:24:41

Eine andere Lösung für das Problem ist

Code: Alles auswählen

nohup
dadurch wird der Prozess beim beenden der ssh-shell einfach nicht gekillt. Allerdings kommt man afaik auch net wieder an den Prozess heran (i/o-mäßig).

mfg
katze
Eine wesentlicher Grund für den Untergang des Römischen Reiches, der bisher völlig außer Acht gelassenen wurde, ist das Fehlen der Null im Zahlensystem der Römer, so daß sie keine Möglichkeit hatten, das erfolgreiche Beenden ihrer C-Programme zu übermitteln.

Antworten