UNIX & Linux
Von: Thomas L., 6.8.2002 12:52 Uhr
Hallo an Alle!

habe eine kleine Frage und vielleicht könnt Ihr mir weiterhelfen. Unter Linux ist es ja kein Problem einen Befehl in den Hintergrund zu schicken und ihn dort weiter arbeiten zu lassen.

gcc ... &
oder
gcc ... STRG+Z bg

aber das mache ich alles direkt am Rechner über die Konsole. Logge ich mich nun aber z.B. über PuTTY (ssh) von einem anderen Rechner ein und starte einen Prozess und schicke ihn in den Background läuft dieser nur so lange weiter bis ich Putty schließe. Mein ganzen Problem oder Frage ist eigentlich:

Wie kann man über das Netz einen Prozess in den Hintergrund schicken, die Konsole schließen, sich später wieder einloggen und den Prozess wieder mit "fg" an das Tageslicht holen?

Danke schon mal
Thomas

P.S. ich habe mir da auch schon ein paar gedanken darüber gemacht. Melde ich mich über das Netz an meinem Rechner an, wird die bash gestartet (also ein Prozess). Starte ich nun einen weiteren wie gcc oder wget ist dieser ja ein Kindprozess der bash. Schicke ich diese in den BG laufen sie weiter (logisch), schieße ich aber nun die bash ab (also meine login shell) werde ja alle Prozesse die ich darunter aufgerufen habe auch abgeschossen - oder denke ich da falsch? Es muss doch da einen Befehl geben das ich ein Progamm irgendwo hin umleiten kann, so das es nicht ein "Kindprozess" meiner login shell ist?
ODER DENKE ICH DA TOTAL VERKEHRT?

Gut ich könnte das auch über einen VNC Server und einen Viewer lösen - aber das geht doch sicherlich auch über die Konsole (bash - ist einfach schneller)



  1. Antwort von Anonym (abgemeldet) 0
    Re: Prozesse im Hintergrund?
    Moin Thomas, Wie kann man über das Netz einen Prozess in den Hintergrund
    schicken, die Konsole schließen, sich später wieder einloggen
    1. "man nohup" wird dir helfen. und den Prozess wieder mit "fg" an das Tageslicht holen?
    2.

    Nach dem du einen Prozess mit ctrl+z schlafen gelegt hast, kannst du den letzteren entweder direkt mit bg in den Background beamen oder du gibs die Zahl in den [] Klammer ein. Bsp [1] bg %1.
    Analog dazu verhält sich fg. Der letzen job den du in den Backround gebeamt hast holt ein fg zurück und ein fg %n holt eben einen anderen Job zurück.

    2b.
    Entweder wird die Zahl in den [] Klammer direkt ausgeben nach dem du den job suspendes bzw. in den backround geschickt hast. Oder sie wird bei der Aussgabe von ps mit angeben.

    All diess hättest du natürlich auch mit "man bg bzw. man fg" herraus gefunden"

    [...]
    Gut ich könnte das auch über einen VNC Server und einen Viewer
    lösen - aber das geht doch sicherlich auch über die Konsole
    (bash - ist einfach schneller)
    Guter Ansatz:-)

    in diesem Sinne

    polarix
    1 Kommentare
    • von Thomas L. 0
      Re^2: Prozesse im Hintergrund?
      Danke für die schnelle Antwort... All diess hättest du natürlich auch mit "man bg bzw. man fg"
      herraus gefunden"

      [...]
      polarix
      hab ich doch auch, das mit den Jobs und [] und fg %[job] und ps -aux | grep [user] (gibt nicht so viel auf der konsole aus) hab ich doch schon gelesen und hat auch alles funktioniert.
      (Vielleicht habe ich mich ein bisschen zu schwammig ausgedrückt - sorry)

      Mein Problem war nur das "nicht" Beenden aller Programme die ich in meiner "Putty ssh Verbindung" aufgerufen habe - beim Beenden oder schließen von Putty. Aber das "nohup" hört sich gut an, werde mal (wie du ja schon sagst) die man lesen.

      Danke !
      Thomas
  2. Antwort von Michael Hönnig 0
    Re: Prozesse im Hintergrund?
    Noch eine Alternative:

    man screen
    2 Kommentare
    • von Sebastian 0
      Re^2: Prozesse im Hintergrund?
      Noch eine Alternative:
      man screen
      Vermutlich in der Tat das, was man will.


      Screen gehört zu den wirklich allzu oft unterschätzen Programmen....



      Sebastian
    • von Thomas L. 0
      Re^2: Prozesse im Hintergrund?
      Noch eine Alternative:

      man screen
      genau das habe ich gesucht :o) Danke!
      Habe zwar schon was davon gehört aber nie richtig gewusst was es alles kann.

      CTRL+A - CTRL+D -> ab in den Hintergrund (detach) ... ausloggen
      und mit screen -r wieder da weitermachen wo man aufgehört hat.

      hier noch ein kleiner Link für die, die die man's nicht lesen wollen:
      http://www.linux-user.de/ausgabe/2001/01/092-zubefeh...