Skip to main content
Utilisez Sandbox.shell() pour les sessions TTY interactives. Conçue pour un usage interactif, cette méthode renvoie un objet TerminalSession qui diffuse les octets bruts en continu, sans mise en mémoire tampon de la sortie. Pour exécuter des commandes par lots, utilisez plutôt exec().

Choisir l’authentification

Ces exemples s’exécutent sur une capacité sans serveur, sauf si une section indique CKS. Choisissez l’identifiant d’authentification du compte propriétaire de vos bacs à sable. Consultez Choisir et obtenir des identifiants d’authentification pour obtenir une clé ou un jeton. Exécutez les commandes d’installation dans un environnement virtuel Python actif. Enregistrez le code Python de l’onglet correspondant à votre identifiant d’authentification sous le nom sandbox_auth.py, dans le même répertoire que les scripts Python que vous exécutez à partir de cette page. Ce fichier enregistre le mode d’authentification choisi, et non votre identifiant d’authentification. Les exemples importent AUTH depuis ce fichier et le transmettent explicitement à chaque nouvelle sandbox ou session.
Utilisez votre clé API Forge via la stratégie d’authentification W&B du SDK :
sandbox_auth.py
Pour un placement sur CKS, choisissez le jeton CoreWeave, activez un exécuteur et définissez placement_mode="cks" lors de la création de la sandbox ou dans SandboxDefaults. Créer une session avec auth=AUTH authentifie également les bacs à sable qui lui appartiennent. Utilisez le même identifiant d’authentification pour vous reconnecter à vos bacs à sable, les lister ou les nettoyer.

Session shell

Créez une sandbox et ouvrez une session de shell interactif. Appelée sans commande, Sandbox.run() utilise la commande longue durée par défaut. Les exemples suivants partent du principe que ce contexte est toujours actif.
shell() alloue toujours un TTY et active stdin. La TerminalSession renvoyée diffuse les octets bruts en flux, sans aller-retour de décodage ou d’encodage UTF-8, ce qui permet de l’utiliser sans risque avec les séquences d’échappement de terminal et les sorties binaires.

Envoyer des commandes et lire la sortie

Une fois la session de terminal ouverte, écrivez des commandes sur stdin et récupérez en streaming la sortie brute fusionnée (en octets) du shell distant.
TerminalSession ne met pas la sortie en mémoire tampon. Stdout et stderr sont fusionnés en un seul flux d’octets bruts sur terminal.output. Le résultat ne comporte pas d’attributs stdout ou stderr distincts. Lisez terminal.output en continu. Si vous cessez de le lire, la contre-pression exercée par la file d’attente bornée bloque la session distante.

Redimensionnement du terminal

Envoyez des messages de redimensionnement lorsque les dimensions du terminal changent.
resize() fonctionne en mode fire-and-forget sur TerminalSession.

Quitter une session shell

Pour mettre fin à une session shell, fermez stdin ou envoyez une commande de sortie :
La session shell se termine lorsque le processus distant s’arrête. Appelez terminal.wait() ou terminal.result() pour bloquer l’exécution jusqu’à l’obtention du code de sortie.

Attacher votre terminal local

Pour travailler dans une sandbox en cours d’exécution depuis votre propre terminal, passez le terminal local en mode brut (raw) et redirigez son entrée vers une session shell(). Le script suivant s’attache à une sandbox existante à partir de son ID, transmet vos frappes clavier à un shell Bash dans la sandbox, puis restaure les paramètres de votre terminal local à la fermeture du shell. Comme il utilise termios, il fonctionne sous macOS ou Linux. Enregistrez le script sous le nom attach_sandbox.py, dans le même répertoire que sandbox_auth.py :
attach_sandbox.py
Remplacez [SANDBOX-ID] par l’ID d’une sandbox en cours d’exécution, puis exécutez le script depuis un terminal interactif :
Le script se termine avec le code de sortie du shell distant.

Commandes et cas d’utilisation

Voir aussi

Dernière modification le 23 octobre 2026