Einen Prozess in den Hintergrund stellen, ohne ihn anzuhalten - (Strg + Z)?

16

Wenn ich einen Prozess starte, indem ich ihn normal in die Befehlszeile eingebe, wie z

wget http://site.com/bigfile.zip

und dann entscheide ich, dass ich das in den Hintergrund verschieben möchte, ich weiß, dass ich so etwas verwenden kann ctrl+zund es dann bg 1(oder jobszuerst, wenn nötig, um die ID zu erhalten) in den Hintergrund stellen kann.

Meine Frage ist, ob es eine Möglichkeit gibt, einen Job vom Vordergrund direkt in den Hintergrund zu verschieben, ohne ihn anzuhalten - wie bei einer anderen Verknüpfung ctrl+z.

Mir ist auch klar, dass ich &an das Ende des ursprünglichen Befehls anhängen kann , um ihn im Hintergrund zu starten, aber die Frage bezieht sich darauf, wann Sie einen Prozess im Vordergrund starten und dann erkennen, dass Sie ihn in den Hintergrund verschieben möchten.

cwd
quelle

Antworten:

14

Ja, absolut: Bildschirm (1) ist die Antwort.

screen -RFügen Sie zunächst ~ / .bash_profile oder ein gleichwertiges Element hinzu, melden Sie sich ab und wieder an.

Um fortzufahren, was im Hintergrund ausgeführt wird, drücken Sie die Tastenkombination Strg-A und dann N. Dadurch wird im Vordergrund ein neuer Terminalbildschirm erstellt, und der laufende Prozess im Hintergrund wird nahtlos fortgesetzt.

Drücken Sie Strg-A und dann ", um eine interaktive Liste der von Ihnen geöffneten Bildschirme anzuzeigen, oder drücken Sie Strg-A und dann eine Zahl, um direkt zu einem bestimmten Bildschirm zu wechseln.

Ihre ursprüngliche Anforderung bestand darin, einen Prozess in den Hintergrund zu verschieben, ohne ihn anzuhalten. Screen hat zwei zusätzliche Vorteile, und diese sind riesig, wenn Sie mehrere Dinge gleichzeitig tun möchten:

  1. Sie können viel flüssiger zwischen Prozessen wechseln als mit Control-Z, bg, fg usw.
  2. Wenn Ihre Terminalsitzung getrennt wird, werden Ihre Prozesse (wie wget http://example.com/bigfile.iso) NICHT beendet! Alle Ihre Shell-Sitzungen werden dort auf Sie warten, wenn Sie die Verbindung wiederherstellen.

Weitere Informationen finden Sie auf der Bildschirm-Manpage (1) oder im GNU-Bildschirmhandbuch .

Skyhawk
quelle
1
screen
Stellen