Prozesse mit Kindern in ScreenSession transferien

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von karloff, 18.06.2014.

  1. #1 karloff, 18.06.2014
    karloff

    karloff Routinier

    Dabei seit:
    09.07.2007
    Beiträge:
    317
    Zustimmungen:
    0
    Ort:
    ~/
    Moin,

    ich hab mal ne Allg. Frage ob das überhaupt geht.

    Allg kann man ja einzelne Processe von einem terminal in ein anderes packen.
    (reptyr)

    Allerdings geht das nur mit einem Prozess, sobald dieser Kinder hat geht es leider nicht mehr.

    Daher die Frage kann man es irgendwie Bewerkstelligen einen ganzen laufenden Job incl. seiner childs in ein neues Terminal zu transferien?

    Mir passiert es nämlich eindeutig zu oft das ich vergesse, das ganze dann in einer screen zu starten, weil ich ja demnächst los will und zwei rechner anhaben ist dann doch irgendwie uncool wenns nicht sein muss.

    danke
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 Gast123, 19.06.2014
    Gast123

    Gast123 Guest

    Also ein Prozess ist erstmal grundsätzlich nicht an ein Terminal gebunden.
    Der Prozess selbst weis nicht (unbedingt), in welchem Terminal oder Terminalemulator er läuft.
    Ein (UNIX-) Prozess weis nur, dass er ggf. Daten über die stdin rein bekommt und schreibt selbst seine Ausgaben in die stdout resp. stderr.
    Was an diese Standarddatenströme angeschlossen ist, kann je nach Umgebung variieren. Es ist in deinem fall wohl ein Terminal.
    Wenn du zur Laufzeit des Prozesses seine Standarddatenströme umleiten willst, so kannst du das über den Umweg mit named Pipes oder - noch eleganter - mit Sockets machen.
     
  4. #3 tgruene, 19.06.2014
    tgruene

    tgruene Routinier

    Dabei seit:
    02.02.2012
    Beiträge:
    418
    Zustimmungen:
    0
    Hilft Dir dieser Hinweis auf 'disown -h' weiter?
     
  5. #4 karloff, 20.06.2014
    karloff

    karloff Routinier

    Dabei seit:
    09.07.2007
    Beiträge:
    317
    Zustimmungen:
    0
    Ort:
    ~/
    Moin
    Also ein einzelner laufden Process, z.B. ääähm ... thunderbird wenn es via terminal gestartet wurde.

    Dann könnte ich den process erstmal mit
    ctrl+z
    Stoppen ,dann via
    disown -h $PID
    ihn von der Shell (parent) trennen
    Eine neue Shell (screen) öffnen
    und dann via
    reptyr $PID
    den process innerhalb der shell ihr zuweisen.

    Das klappt eigentlich ganz gut

    Das konkrete Anwendungsbeispiel hier wäre, ne SSH Shell auf nen Server, dort habe ich ein update gestartet ... das script welches ich mir dafür geschrieben hab
    spawn jetzt kindsprocesse z.B. gcc welches das kompilieren des updates übernimmt.
    Das Update script spawn im schnitt so 6-8 kinder.
    Bis dahin alles okay, aber denn merk ich das ich los muss oder sowas .... jetzt hab ich das problem dass das update auf dem server nicht in ner screen session läuft, ergo der process stirbt sobald ich die ssh zum process trennen.

    Daher die Frage ob es hier andere Möglichkeiten gibt (die auch irgendwie praktikabel sind) abgesehen von alles noch mal in der screen neu starten oder beide rechner anlassen.


    Wenns nicht geht ist es auch kein Beinbruch, wäre nur irgendwie cool wenns gehen würde.
     
  6. #5 Gast123, 20.06.2014
    Zuletzt von einem Moderator bearbeitet: 20.06.2014
    Gast123

    Gast123 Guest

    Wie oben bereits gesagt:
    Häng dein Skript beim Start an named Pipes oder Sockets.
    Das ist nicht schwierig.
    Hier ein Beispiel aus einem meiner Programme (letzte Zeile!):
    https://github.com/conqp/minectl/blob/master/src/bin/mcsrv

    Oder dur überlegst dir vorher, ob du Zeit hast, auf das Skript zu warten und startest es mit nohup.
     
  7. #6 bitmuncher, 20.06.2014
    bitmuncher

    bitmuncher Der Stillgelegte

    Dabei seit:
    08.05.2007
    Beiträge:
    3.171
    Zustimmungen:
    0
    Dein Skript hängt ziemlich sicher an einer Shell oder einem Interpreter und wenn du diese in eine Screen-Session verlegst anstelle deines Update-Skripts, dann sollten auch alle vom Skript geforkten Prozesse im Kontext dieser Screen-Session laufen.
     
  8. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema:

Prozesse mit Kindern in ScreenSession transferien

Die Seite wird geladen...

Prozesse mit Kindern in ScreenSession transferien - Ähnliche Themen

  1. Demon im Runlevel2 erzeugt SIGTERM in den nachfolgenden Prozessen

    Demon im Runlevel2 erzeugt SIGTERM in den nachfolgenden Prozessen: Hallo Ich habe apache derby auf meinem UBUNTU-System installiert und lass es normal in runlevel 2 hochfahren. sh...
  2. Mozilla will Firefox-Prozesse verbessern

    Mozilla will Firefox-Prozesse verbessern: Es bleibt bis auf weiteres bei den schnellen Veröffentlichungszyklen und den Versionsnummern von Firefox. Wie Mitchell Baker erklärte, will...
  3. Samba Share / Linux Prozesse -> Violation

    Samba Share / Linux Prozesse -> Violation: Hallo, ich habe folgende Situation. 1.) Samba freigabe auf /usr/app/interfaces 2.) Eine Unix Applikation scannt alle 60sec dieses...
  4. Threads || Prozesse & Semaphoren

    Threads || Prozesse & Semaphoren: Hallo, ich muss für die Schule eine simulation programmieren. Es handelt um diese Problemstellung: "Simulieren sie eine Mautstelle mit zwei...
  5. Linux-Kernel mit Checkpoint/Resume für Prozesse

    Linux-Kernel mit Checkpoint/Resume für Prozesse: Eine Gruppe von Entwicklern arbeitet derzeit unter dem Namen Linux-CR an einem sogenannten Checkpoint/Resume-Framework für Prozesse. Weiterlesen...