was ist das ? #
screen
ist ein Terminal-Multiplexer, der es dir ermöglicht, mehrere virtuelle Terminal-Sitzungen innerhalb einer einzigen SSH-Verbindung zu verwalten. Du kannst damit Programme starten, sie im Hintergrund laufen lassen und später zu ihnen zurückkehren, selbst wenn du die SSH-Verbindung unterbrochen hast.
screen
's wichtigste Befehle (laut chatGPT) #
Installation: #
apt install screen
neue screen Sitzung: #
screen
Sitzung beenden (exit): #
exit
Sitzung verlassen (dettach): #
Strg+A dann Strg+D
letzte Sitzung beitreten (reattach): #
screen -r
Liste alle Sitzungen: #
screen -ls
bestimmte Sitzung anhängen (reattach): #
screen -r $sessionID
(die $sessionID findet sich in der Liste)
Terminal Magie #
Es gibt noch Terminal Magie, mit der Kernelsignale genutzt werden um Prozesse in den Hintergrund zu verschieben.
nohup und "&": #
nohup apt install blender &
nohup: Führt einen Befehl aus und ignoriert SIGHUP (Signal Hang Up), so dass der Befehl auch dann weiterläuft, wenn die Shell-Sitzung geschlossen wird. (ich merke mir nur: "no hang up")
&: Führt den Befehl im Hintergrund aus, so dass du die Shell sofort weiter verwenden kannst, ohne auf die Beendigung des Befehls zu warten.
Liste die Jobs auf: #
jobs
Zeigt die aktiven Hintergrundjobs in der aktuellen Shell-Sitzung an.
fg: #
fg %i
Bringt einen Hintergrundjob in den Vordergrund und setzt ihn fort.
nohup ohne &: #
nohup sudo apt-get install blender
Jedoch, wenn du den Befehl ohne & am Ende ausführst, wird der Prozess immer noch im Hintergrund laufen gelassen, aber die Shell wird blockiert, bis der Befehl abgeschlossen ist. Das kann manchmal unpraktisch sein, da es dich daran hindern könnte, weitere Befehle in derselben Shell-Sitzung auszuführen, bis der vorherige Befehl abgeschlossen ist.
In diesem Fall wird der Befehl sudo apt-get install blender
im Hintergrund laufen gelassen, aber die Shell wird blockiert, bis dieser Befehl vollständig ausgeführt ist.
Mal schauen was ich noch so finde...
Naja.