Créer une session PTY
Vous pouvez utilisersandbox.pty.create() pour démarrer un shell bash interactif.
Le PTY lance un shell bash interactif avec
TERM=xterm-256color, de sorte que les couleurs ANSI et les séquences d’échappement fonctionnent comme prévu.Délai d’expiration
Le paramètre de délai d’expiration est configurable et détermine combien de temps la session PTY reste active. Vous pouvez garder une session PTY ouverte indéfiniment en définissanttimeoutMs: 0 en JavaScript ou timeout=0 en Python. Par défaut, la session utilise un délai d’expiration de 60 secondes.
Envoyer une entrée au PTY
Vous pouvez utilisersendInput() en JavaScript ou send_stdin() en Python pour envoyer des données au terminal.
En JavaScript, sendInput() renvoie une Promise, et toute sortie du terminal est transmise via le callback onData plutôt que renvoyée directement.
En Python, send_stdin() se termine de manière synchrone, et toute sortie du terminal est transmise via le callback on_pty passé à wait().
Redimensionner le terminal
Vous pouvez utiliserresize() pour notifier le PTY lorsque l’utilisateur modifie la taille de la fenêtre du terminal.
Les valeurs cols et rows représentent les dimensions du terminal en caractères plutôt qu’en pixels.
Se déconnecter et se reconnecter
Une session PTY peut rester active même après la déconnexion du client. Vous pouvez détacher la session et vous y reconnecter plus tard avec un nouveau gestionnaire de données. Cela peut être utilisé pour récupérer après des interruptions réseau, prendre en charge l’accès au terminal depuis plusieurs clients et préserver l’état de la session lors des reconnexions.Arrêter le PTY
Vous pouvez utiliserkill() pour terminer la session PTY.
Attendre la fin du PTY
Vous pouvez utiliserwait() pour bloquer l’exécution jusqu’à la fin de la session de terminal, par exemple lorsque l’utilisateur saisit exit.
Terminal interactif (semblable à SSH)
Vous pouvez utiliser la même APIsandbox.pty décrite ci-dessus pour créer un terminal entièrement interactif comme SSH, en gérant le mode brut, la transmission de stdin et les événements de redimensionnement du terminal.