Wie kann ich Programme von einem Linux-Terminal aus ausführen, ohne das Terminal zu blockieren?

78987
ueaiox

Wenn ich ein Programm von einem Terminal aus starte, kann ich diese Terminalinstanz erst wieder verwenden, wenn ich das Programm schließe.

Gibt es eine Möglichkeit, ein Programm / eine Anwendung von einem Terminal aus auszuführen, ohne das Terminal zu blockieren, bis das Programm endet?

29

3 Antworten auf die Frage

57
Benjamin Bannier

Sie suchen nach Job-Kontrolle, die von den meisten Shells unterstützt wird. In diesem Artikel finden Sie eine Einführung. Möglicherweise möchten Sie auch die offizielle Dokumentation für bash lesen, die die Standardshell in Ubuntu ist.

Kurz gesagt: Um einen Job automatisch im Hintergrund zu starten, setzen Sie &nach dem Programmaufruf ein

$ program & 

Sie können Programme auch mit stoppen CTRLzund später mit in den Hintergrund stellenbg

$ program ^Z $ bg 

Um sie wieder im Vordergrund laufen zu lassen, verwenden Sie fg.

Zu erfahren, dass es offizielle Unterlagen für bash gibt, war eine große sekundäre Hilfe, die ich aus dieser Antwort erhielt, danke! Addem vor 8 Jahren 0
1

Wenn die Jobsteuerung nicht genau das ist, was Sie möchten, schauen Sie in den Bildschirm .

Screen steuert mehrere virtuelle Terminals, sodass Sie mehrere Programme ausführen können, ohne dass diese miteinander interagieren. Sie können beispielsweise mocp (einen Musikplayer), aptitude (einen Paketmanager) und vim (einen Texteditor) gleichzeitig ausführen, auch wenn alle interaktive Programme sind, die das Terminal so behandeln, als hätten sie alleinigen Zugriff.

Auf diese Weise können Sie problemlos von einer Aufgabe zur anderen wechseln, z. B. ein neues Terminal innerhalb des Bildschirms erstellen, um eine Manpage zu lesen - ohne Ihren Platz an anderer Stelle zu verlieren - hin und her zu springen usw.

1
Gemtastic

In Ubuntu 16.10 kann ich das in einer anderen Antwort erwähnte Strg + Z-Ding nicht erhalten, aber

program & ^C 

Funktioniert für mich, mit anderen Worten, ctrl + cnachdem Sie das Programm mit einem abschließenden Et-Zeichen gestartet haben.