PTY-Sitzung erstellen
Sie könnensandbox.pty.create() verwenden, um eine interaktive Bash-Shell zu starten.
Das PTY startet eine interaktive Bash-Shell mit
TERM=xterm-256color, sodass ANSI-Farben und Escape-Sequenzen wie erwartet funktionieren.Zeitüberschreitung
Die Timeout-Einstellung ist konfigurierbar und bestimmt, wie lange die PTY-Sitzung aktiv bleibt. Sie können eine PTY-Sitzung unbegrenzt offen halten, indem Sie in JavaScripttimeoutMs: 0 oder in Python timeout=0 festlegen. Standardmäßig verwendet die Sitzung ein Timeout von 60 Sekunden.
Eingabe an PTY senden
Sie können in JavaScriptsendInput() oder in Python send_stdin() verwenden, um Daten an das Terminal zu senden.
In JavaScript gibt sendInput() ein Promise zurück, und jede Terminalausgabe wird über den onData-Callback bereitgestellt, anstatt direkt zurückgegeben zu werden.
In Python wird send_stdin() synchron abgeschlossen, und jede Terminalausgabe wird über den on_pty-Callback bereitgestellt, der an wait() übergeben wurde.
Terminalgröße ändern
Sie könnenresize() verwenden, um das PTY zu benachrichtigen, wenn der Benutzer die Größe des Terminalfensters ändert.
Die cols- und rows-Werte repräsentieren die Terminalabmessungen in Zeichen statt in Pixeln.
Trennen und erneut verbinden
Eine PTY-Sitzung kann auch dann aktiv bleiben, wenn der Client die Verbindung trennt. Sie können sich von der Sitzung trennen und später mit einem neuen Datenhandler erneut verbinden. Dies kann verwendet werden, um sich von Netzwerkunterbrechungen zu erholen, Terminalzugriff von mehreren Clients zu unterstützen und den Sitzungszustand über erneute Verbindungen hinweg zu erhalten.PTY beenden
Sie könnenkill() verwenden, um die PTY-Sitzung zu beenden.
Auf das Beenden des PTY warten
Sie könnenwait() verwenden, um zu blockieren, bis die Terminalsitzung endet, zum Beispiel wenn der Benutzer exit eingibt.
Interaktives Terminal (SSH-ähnlich)
Sie können dieselbe oben beschriebenesandbox.pty-API verwenden, um ein vollständig interaktives Terminal wie SSH zu erstellen, indem Sie Raw Mode, stdin-Weiterleitung und Ereignisse zur Änderung der Terminalgröße behandeln.