Die Routenkartenerstellung in einem anderen Terminal fortsetzen

LinuxBeginner
Jetzt üben

Einführung

Eine örtliche Wanderwegeauskunft bereitet Routenkarten für Besucher vor. Das bereitgestellte Programm berechnet Wege in einem kleinen künstlichen Netz und zeichnet echte SVG-Karten. Es erzeugt einen Stapel und wartet dann auf deine Wahl des nächsten Stapels und Routenmodus. Die nächste Gruppe braucht Wege ohne Treppen. Den ersten Befehl nur im Hintergrund laufen zu lassen genügt deshalb nicht: Du musst seine Eingabeaufforderung wieder erreichen.

Du startest in Terminal A eine benannte tmux-Sitzung, löst die Clientverbindung und setzt denselben Prozess in Terminal B fort. Anschließend nutzt du die Sammlung in Maps. Grundlegende Terminalkenntnisse reichen aus; du schreibst kein Python und brauchst keine Kartografieerfahrung. Alle Routen sind künstliche Übungsdaten, keine Wegbeschreibung für echte Wanderwege.

Eine benannte Kartenaufgabe starten

In diesem Schritt startest du eine echte interaktive Kartenaufgabe und lässt sie auf den nächsten Stapel warten.

Eine Shell liest Befehle. Eine Aufgabe ist ein von ihr gestartetes Programm. tmux erhält ein Terminal und seine Aufgabe in einem Server im Hintergrund. Eine benannte Sitzung fasst Fenster zusammen, die jeweils ein Terminal enthalten. Ein Client verbindet dein Browserterminal mit dieser Sitzung. Beim Ablösen wird der Client entfernt; Server und Aufgabe laufen weiter. Nach dem Löschen der VM oder des Servers kann tmux die Arbeit nicht wiederherstellen.

Beide Browserterminals starten in /home/labex/project/trail-maps und befinden sich bereits in getrennten tmux-Sitzungen der Plattform. plan.tsv ist ein relativer Pfad: Er bezeichnet die Datei im aktuellen Verzeichnis. Starte darin kein weiteres direkt verbundenes tmux. Lies zunächst in Terminal A den Plan. cat zeigt eine Datei; die Spalten nennen Aufgabe, nächsten Stapel, Routenmodus und Grund.

cat plan.tsv

Die Aufgabe survey benötigt den Stapel east im Modus step-free. walking darf Treppen verwenden; step-free schließt vor der Berechnung des kürzesten Wegs alle Treppenkanten aus. Der erste Stapel verwendet walking, daher darf seine kürzere Route tatsächlich anders verlaufen. Geografische Kenntnisse sind nicht nötig.

Liste die Sitzungen auf. list-sessions ist ein tmux-Befehl; erhalte die vorbereitete Sitzung trail-reference. Namen mit TTYD- am Anfang gehören zur Plattform.

tmux list-sessions

Erstelle trail-survey. new-session erzeugt eine Sitzung, -d lässt sie abgelöst und -s vergibt ihren eindeutigen Namen. Das letzte Argument in Anführungszeichen ist der im Terminal auszuführende Befehl. python3 startet das bereitgestellte Programm; guided wählt die eigenständige Aufgabe dieses Labs. Der Kartenersteller startet direkt in der Sitzung.

tmux new-session -d -s trail-survey 'python3 /opt/labex/atlas/map-job.py guided'

Verbinde dich mit ihr. attach-session wählt mit -t das Ziel. Innerhalb des vorhandenen Plattformclients wechselt das dessen Sitzung, statt ein weiteres tmux zu verschachteln.

tmux attach-session -t trail-survey

Der absolute Programmpfad bezeichnet den vorbereiteten Kartenersteller. Er meldet eine PID, schreibt zwei SVG-Dateien für morning und wartet bei Next batch:. Merke dir diese PID: Terminal B muss dieselbe zeigen. Das Programm lebt noch und wartet auf Eingabe; dass kein Shellprompt erscheint, ist normal. Gib an dieser Frage keinen Shellbefehl ein.

Erscheint beim Erstellen duplicate session, liste die Sitzungen und verbinde dich mit der vorhandenen trail-survey. Lösche weder ihre Dateien noch starte eine Ersatzaufgabe. Bei sessions should be nested with care hast du innerhalb von tmux ein verbundenes new-session versucht: Kehre zur Plattformshell zurück und verwende die oben gezeigte abgelöste Erstellung. Prüfe diesen Schritt, solange der Kartenersteller noch wartet.

In Terminal B fortsetzen

In diesem Schritt löst du den ersten Client ab und erledigst den nächsten Stapel über ein zweites unabhängiges Terminal.

Fokussiere Terminal A. Halte Ctrl und drücke B, lasse beide Tasten los und drücke dann D. Das ist ein Präfix mit anschließender Taste, kein gleichzeitiges Drücken dreier Tasten. Es sendet den Ablösebefehl an tmux. Verwende weder exit noch Ctrl+C: Diese beenden eine Shell beziehungsweise unterbrechen das Kartenprogramm, statt nur dessen Anzeige zu trennen.

Der Browser zeigt [detached (from session trail-survey)]. Da die Plattform tmux direkt startet, gibt es in diesem Browserterminal keine äußere Shell, zu der du zurückkehrst. Lasse es so. Öffne Terminal B mit seiner eigenen dauerhaften Shell. Ein geschlossenes Browsertab oder eine unterbrochene Netzwerkverbindung ist ein anderes Ereignis; diese Übung prüft bewusst Ablösen und Wiederverbinden auf derselben VM.

Liste in Terminal B die Sitzungen auf:

tmux list-sessions

trail-survey sollte weiterhin aufgeführt sein, jetzt ohne verbundenen Client. Verbinde dich mit genau diesem Namen:

tmux attach-session -t trail-survey

Du solltest dieselbe PID und die Frage Next batch: wiedersehen. Ein weiterhin sichtbarer Shellprompt bedeutet, dass du noch nicht beim Kartenersteller bist. Siehst du eine andere Aufgabe, löse dich ab und wähle den richtigen Namen; sende ihr keine Antworten.

Gib an der Programmfrage den angeforderten nächsten Stapel ein. Dies ist eine Eingabe für das Kartenprogramm, kein Shellbefehl:

east

Anschließend erscheint Route mode:. Gib den im Plan verlangten Modus ohne Treppen ein:

step-free

Vor dem Schreiben zeigt das Programm Plan: east / step-free und fragt Build this batch? [yes/no]:. Prüfe Stapel und Modus gemeinsam. Ist etwas falsch, kehrst du mit no im selben Prozess zu Next batch: zurück; die ursprünglichen Karten bleiben unverändert. Bestätige den richtigen Plan:

yes

Das Programm berechnet zwei weitere Routen, schreibt ihre SVGs und aktualisiert den Index. Erwarte Collection ready: 4 real SVG maps and index.json.. Die abschließende Aufforderung Inspection mode hält den ursprünglichen Prozess absichtlich für die Kontrolle am Leben. Lasse ihn laufen. Ungültige Stapelnamen oder Modi werden ohne Verlust des ersten Stapels abgelehnt: Lies die Aufforderung und beantworte dieselbe Frage erneut. Eine gültige, aber falsche Wahl kannst du bei der Bestätigung mit no korrigieren und neu auswählen. Ein Neuladen des Browsers ändert den ausstehenden Plan nicht. Nach yes ist diese Sammlung endgültig; vergleiche sie deshalb vor dem Bestätigen mit dem Plan. Lösche keine Dateien und starte keinen Prozess neu, um eine neue Aufgabe als Fortsetzung auszugeben.

Die Prüfung vergleicht den lebenden Prozess, die genauen Routen und den vollständigen Index. Ein neuer Prozess mit ähnlichen Ausgaben ist keine Fortsetzung dieser Aufgabe.

Die fertige Kartensammlung verwenden

In diesem Schritt untersuchst du die tatsächlichen Karten und ihren maschinenlesbaren Index, während die Aufgaben verfügbar bleiben.

Öffne Maps und wähle survey/. Die ersten beiden Kartenansichten sind die ursprünglichen Karten für morning. Die nächsten beiden gehören zu east im Modus step-free. Wähle bei der east-Route nach Cabin Download SVG und speichere das SVG. Die grüne Route sollte über Orchard führen und Bridges Treppenkanten vermeiden. Die erste morning-Route nach Cabin darf Bridge nutzen. Diese Unterschiede entstehen durch die Graphberechnung mit dem gewählten Modus, nicht nur durch eine geänderte Beschriftung.

Kehre zur Sammlung zurück und lies die east-Route nach Lookout. Weg und Dauer stehen auch in index.json. Bleibe zur Datenansicht in Terminal B und drücke Ctrl+B, dann C. Das erzeugt ein neues tmux-Fenster mit einer Shell, während der Kartenersteller in Fenster 0 weiterläuft. Ein Fenster ist ein weiteres Terminal innerhalb derselben benannten Sitzung; es startet das Programm nicht neu. Der Shellprompt zeigt, dass wieder Befehle eingegeben werden können.

Setze mit cd ausdrücklich das aktuelle Verzeichnis. Der absolute Pfad beginnt mit / und funktioniert unabhängig vom Startverzeichnis der neuen Shell:

cd /home/labex/project/trail-maps

ls listet die Namen in einem Verzeichnis. Prüfe, dass alle vier Karten, die HTML-Ansicht, der Index und die Prozessinformationen vorhanden sind:

ls survey

Zeige den Index über seinen relativen Pfad an:

cat survey/index.json

Jeder Datensatz enthält Stapel, Modus, Ziel, Minuten und die berechnete Knotenfolge. Die ursprünglichen Karten bleiben neben den neuen erhalten. Das ist eine nutzbare Sammlung, nicht nur eine Fertigmeldung.

Liste die Sitzungen erneut auf:

tmux list-sessions

Sowohl trail-survey als auch trail-reference müssen erhalten bleiben. Eine abgelöste Sitzung kann weiterlaufen. Die TTYD--Sitzungen der Plattform gehören nicht zu den Geschäftsaufgaben. Verwende zum Aufräumen kein kill-server: Das würde alle Sitzungen einschließlich der Referenz beenden. Erhalte die Umgebung, bis die Prüfungen bestanden sind. Zum ursprünglichen Kartenersteller kehrst du mit Ctrl+B und danach der Ziffer 0 zurück. Das wählt Fenster 0; die Inspektionsaufforderung und dieselbe PID sollten weiterhin sichtbar sein.

Du hast einen Prozess funktional zwischen zwei Browserterminals fortgesetzt. Dies belegt keine Wiederherstellung nach VM-Neustart, keinen Wechsel physischer Rechner, keine automatischen Wiederholungen und kein Netzwerk-Wiederverbinden der Plattform.

Zusammenfassung

Du hast eine benannte tmux-Sitzung erstellt, einen Client abgelöst und dich von einem anderen Terminal wieder mit demselben lebenden Kartenprogramm verbunden, um weiter zu antworten. Die Sammlung enthält die ursprünglichen Gehwegkarten sowie die angeforderten treppenfreien Karten und ihren genauen Index. Auch die Referenzsitzung blieb erhalten. Die Kontinuität setzt voraus, dass tmux-Server und VM weiterleben.