Kurze Antwort
Im nicht reagierenden Terminal:
- Drücken Sie Ctrl+ Z.
- Tippen
bg
und eingeben.
- Tippen
disown
und eingeben.
Lange Antwort
Drücken Sie im nicht reagierenden Terminal auf Ctrl+ Z, um den Vorgang (oder "Job") anzuhalten und die Konsolensteuerung an Sie zurückzugeben. Sie werden jedoch feststellen, dass gedit
das nicht mehr reagiert und Sie es nicht verwenden können.
Extra : Wenn Sie möchten, können Sie den Befehl ausführen jobs
, werden Sie feststellen , dass es lesen werden Gestoppt für den gedit
Befehl, das ist , warum Sie es nicht verwenden können.
Um den Job erfolgreich im Hintergrund gedit
auszuführen bg
(dh wieder reaktionsfähig zu machen ), führen Sie den Befehl aus (dh Hintergrund). Sie können jetzt verwenden gedit
und haben gleichzeitig die Aufforderung für sich.
Extra : Wenn Sie jetzt ausführen jobs
, werden Sie feststellen, dass es Running lautet .
All dies können Sie von Anfang an überwinden. Wenn Sie gedit
vom Terminal aus starten , fügen Sie &
am Ende des Befehls einen hinzu gedit /path/to/file &
. Dies wird gedit
von Anfang an im Hintergrund gestartet (möglicherweise müssen Sie Entermehrmals drücken, um die Konsolensteuerung wiederherzustellen).
Extra : Wenn Sie diesen zusätzlichen Hinweisen gefolgt sind, haben Sie möglicherweise bemerkt, dass beim zweiten Mal ein jobs
Bash &
am Ende des gedit
Befehls hinzugefügt wurde .
Sobald Sie sich an dieses System gewöhnt haben, werden Sie möglicherweise feststellen, dass gedit beim Schließen des Terminals auch ohne Bestätigungsdialog beendet wird. Um dies zu verhindern, führen Sie disown
Folgendes aus: Dadurch wird der gedit-Prozess vom Terminal getrennt und aus der von zurückgegebenen Liste entfernt jobs
.
Tipp einfach:
gedit <filename-to-edit> &
Dadurch wird sofort die Eingabeaufforderung an Sie zurückgegeben.
quelle
Sie können das verwenden
nohup
, um zu verhindern, dass die GUI an ein Terminal angeschlossen wird:Auf diese Weise können Sie das Terminal schließen, von dem aus Sie starten, ohne dass das Programm geschlossen wird.
Sie sollten auch beachten, dass der Befehl nohup eine Datei mit dem
stdout
undstderr
des Befehls erstellt, den Sie ausführen. Wenn Sie das verhindern wollen, fügen Sie&>/dev/null
vor dem&
.quelle
nohup.out
die die Ausgabe des Befehls enthält. Dies ist nützlich, wenn Sie Fehlermeldungen anzeigen möchten. Wenn Sie nicht möchten, dass die Datei erstellt wird, fügen Sie die Umleitung wie folgt hinzu:nohup mupdf some.pdf &>/dev/null &
Sie können auch den
disown
Befehl verwenden. Dies ist besonders nützlich, wenn Sie den Prozess bereits gestartet haben, den Sie nicht mehr mit dem Terminal verbinden möchten.Das grundlegende Verfahren, wenn ich mich richtig erinnere, ist ungefähr so:
Beachten Sie, dass die Ablehnung
bash
spezifisch ist.Dieser Blogbeitrag erklärt beide Methoden ziemlich gut.
Manpage für Disown
quelle
firefox & disown
Von
man gedit
:Wenn Sie also
gedit
mit der-b
Option ausführen , wird es im Hintergrund gestartet:Außerdem können Sie als nächstes einen Alias für erstellen
gedit -b
(siehe hier, wie Sie einen permanenten Alias erstellen):Ab jetzt können Sie es
gedit [FILE-NAME]
wie gewohnt verwenden und es wird im Hintergrund gestartet.quelle
Tipp einfach:
Wenn Sie einen Befehl mit
&
in bash beenden, wird dieser Befehl im Hintergrund ausgeführt. Dieser Prozess ist jedoch weiterhin mit dem Terminal verbunden.OhneEs stellte sich heraus, dass ich mich geirrt hatte, dies ist nicht der Fall für bash, aber es ist der Fall für zsh. Sie müssendisown
Wenn Sie das Terminal schließen, wird gedit geschlossen, ohne dass Sie dazu aufgefordert werden, eine bearbeitete Datei zu speichern.disown
Trennt den Hintergrundprozess vom aktuellen Terminal. Wenn Sie das Terminal schließen, wird gedit wie gewohnt weiter ausgeführt.detach
nachher noch rennen ctrl- zundbg
zwar sogar in der Bash.Sie können mehr über die Einbauten herausfinden
jobs
,disown
und die&
metacharacter in der Man - Page für denbash
Befehl , vor allem der Abschnitt mit der Überschrift „Jobsteuerung“.quelle
disown
ich das gedit offen halten nachdem das terminal geschlossen war. Ich habe nicht verstanden, was Sie über "Dies ist nicht der Fall für Bash, aber es ist der Fall fürDies liegt wahrscheinlich daran, dass Sie gedit über das Terminal geöffnet haben. Wenn Sie dies tun, sehen Sie die Befehlszeilenausgabe, die normalerweise ausgeblendet ist, wenn sie über die GUI gestartet wird. Dies lässt sich am besten beheben, indem Sie ein neues Terminalfenster öffnen. Der andere wird verfügbar, sobald gedit geschlossen wird. Sie können auch den oben vorgeschlagenen Schalter verwenden.
quelle