Angenommen, gedit
das Programm, das Sie ausführen möchten, ist nicht verbunden (auch bekannt als "disowned", "disentangled", "decoupled"). Es gibt verschiedene Möglichkeiten, je nachdem, was Sie genau tun möchten:
Programm läuft bereits
Verleugnen:
disown -h
ist der richtige Weg, wenn Sie dies mit einem bereits laufenden Programm tun möchten (dh wenn Sie es vergessen nohup
haben). Sie müssen es zuerst mit Ctrl+ stoppen Z. Dann können Sie mit bg [jobId]
(zB bg 1
) in den Hintergrund stellen . Sie erhalten eine Liste der ausgeführten Jobs mit der Job-ID, die verwendet wird jobs
. Danach können Sie es mit vom Terminal abkoppeln disown -h %[jobId]
. Beispiel für eine Terminalsitzung:
$ gedit
^Z
[1]+ Stopped gedit
$ jobs
[1]+ Stopped gedit
$ bg 1
[1]+ gedit &
$ disown -h %1
$ exit
Programm noch nicht gestartet
Nohup
nohup
ist nicht immer auf allen Maschinen vorhanden. Wenn Sie wissen, dass Sie vorab entkoppeln möchten, verwenden Sie:
nohup gedit &
Vielleicht möchten Sie die Shell - Ausgabe als auch und Ihr Programm eine Pseudo - Eingangsquelle umgeleitet werden , so: nohup ./myprogram > foo.out 2> bar.err < /dev/null &
. Sie möchten die Ausgabe umleiten, um entweder nicht gestört zu werden oder um sie später zu verwenden. Die Null-Eingabe kann helfen, Fehler in ssh und so zu vermeiden.
Unterschale:
Sie können einen ähnlichen Effekt erzielen, indem Sie
$ (geany >/dev/null 2>&1 &)
Die eckigen Klammern öffnen eine neue Subshell, in der gedit ausgeführt wird. Die >/dev/null 2>&1
Shell leitet die Ausgabe an einen anderen Ort weiter (unterdrückt die Ausgabe). Und &
am Ende rückt der Prozess in den Hintergrund.
Terminal-Multiplexing
Auch Terminal-Multiplexing über Bildschirm oder Byobu . Sie führen das Programm grundsätzlich in einem eigenen Terminal aus. Ich kann byobu auch aus anderen Gründen wirklich empfehlen. Nachfolgend finden Sie eine Liste von Boybu-Verknüpfungen, die für Ihre ersten Schritte nützlich sein könnten:
Nützlich:
- F2 Erstelle ein neues Fenster
- F3 Zum nächsten Fenster wechseln
- F4 Zum vorherigen Fenster wechseln
- F6 Trennen Sie sich von der Sitzung und melden Sie sich ab
- Shift-F6 Trennen Sie sich von der Sitzung, aber melden Sie sich nicht ab
- F7 Rufen Sie den Scrollback- / Suchmodus auf
- Ctrl-F5 Schließen Sie alle SSH / GPG-Sockets oder Agenten wieder an
Weniger nützlich:
- Shift-F2 Teilen Sie den Bildschirm horizontal
- Ctrl-F2 Teilen Sie den Bildschirm vertikal
- Shift-F3 Bewegen Sie den Fokus zum nächsten Split
- Shift-F4 Verschiebt den Fokus zum vorherigen Split
- Shift-F5 Alle Teilungen reduzieren
- F5 Aktualisieren Sie alle Statusbenachrichtigungen
- F8 Benennen Sie das aktuelle Fenster um
- F9 Starten Sie das Byobu-Konfigurationsmenü
- F12 Escape-Taste von GNU Screen
- Alt-Pageup Blättern Sie zurück durch den Verlauf dieses Fensters
- Alt-Pagedown Blättern Sie vorwärts durch den Verlauf dieses Fensters
- Ctrl-a-! Schaltet alle Tastenkombinationen von Byobu ein oder aus
Der At-Daemon und andere
at
ist ein nützliches kleines Tool, um einen Befehl zu einem festgelegten Zeitpunkt auszuführen. Es kann "missbraucht" werden, um einen Befehl von der Shell zu trennen:
echo './myprogram myoption1 myoption2' | at now
Auch Sie können in setsid
und schauen start-stop-daemon
, aber die anderen Methoden sollten ausreichen.