Wenn ich ein Programm in Bash ausführe, kann ich es durch Drücken von Ctrl+ anhalten Z. Wenn ich das Programm laufen lassen möchte, kann ich den bg
Befehl verwenden. Gibt es eine Möglichkeit, das Programm direkt in den Hintergrund zu stellen, ohne tippen zu müssen bg
?
Erläuterung : Ich möchte das Programm in den Hintergrund stellen, wenn es bereits ausgeführt wird, ohne es anzuhalten.
Antworten:
Ich glaube nicht, dass es möglich ist, ein laufendes Programm in den Hintergrund zu verschieben (während der Prozess noch läuft).
Es gibt jedoch eine Anwendung namens GNU-Screen , mit der Sie eine beliebige Anzahl von konsolenbasierten Anwendungen - interaktive Befehls-Shells, fluchbasierte Anwendungen, Texteditoren usw. - in einem einzigen Terminal ausführen können.
Hier ist ein schönes Tutorial auf GNU-Screen.
Beachten Sie, dass es nicht genau das tut, was Sie gefragt haben, aber trotzdem den Zweck erfüllt.
Beispiel:
Hier ist die Implementierung dessen, was Sie mit GNU-Screen gefragt haben.
screen
Sie erhalten Details zur Software. Drücken Sie die Eingabetaste.
vlc
. Geben Sie einen beliebigen Befehl ein . Der Prozess wird in diesem Fenster gestartet.quelle
Nach meinem besten Wissen können Sie es ausführen und dann ein & danach wie folgt anhängen :
myprogram &
Ich kann mich hier jedoch sehr irren.
[BEARBEITEN]: Wenn Sie dies genauer betrachten, wird die Anwendung geschlossen, wenn Sie das Terminal schließen. Wenn Sie möchten, dass die Anwendung im Hintergrund ausgeführt wird, muss die Anwendung meines Wissens so geschrieben werden, dass das Verhalten des Dämons unterstützt wird.
[EDIT 2]:
nohup command &
scheint näher an dem zu sein, was Sie erreichen möchten. Nohup ermöglicht die Ausführung einer Anwendung und ignoriert sowohl die Eingabe als auch die Ausgabe in eine Datei, dienohup.out
im aktuellen Verzeichnis aufgerufen wird .quelle
Dies ist möglicherweise keine echte Antwort. Ich frage mich, was der Unterschied zwischen Ubuntu und MSYS bei Bash ist.
Ich führe MSYS aus und wenn ich es ausführe
Application/Chrome &
, geht es sofort zum Hintergrundprozess. Ich kann die MSYS-Bash als nächste Eingabeaufforderung verwenden, um zu blinken.Und sind dies Fragen, die das laufende Programm mit ähnlichen Absichten in den Hintergrund verschieben ?
quelle