Exécutez des commandes dans un sandbox, lisez leur sortie et leur code de sortie et vérifiez les erreurs. Utilisez ces fonctionnalités pour exécuter des scripts, des tâches d’entraînement et d’autres processus dans un sandbox, puis vérifier les résultats par programmation.
Exécuter des commandes dans un sandbox
- Commande unique : transmettez la commande à
Sandbox.run()et appelezSandbox.wait_until_complete()pour attendre la fin de l’exécution. Idéal pour les traitements par lot, les tests ou les entraînements. - Commandes multiples : appelez
Sandbox.run()sans argument, puis utilisezSandbox.exec()pour chaque étape. Idéal pour les flux de travail qui combinent la configuration, l’exécution et la récupération des résultats.
Exécuter une seule commande
Sandbox.run(), puis appelez Sandbox.wait_until_complete() pour attendre que le sandbox atteigne un état terminal.
L’exemple suivant démarre un sandbox qui exécute python train.py, puis attend au maximum 3 600 secondes que le sandbox se termine.
Exécuter plusieurs commandes à la suite
Sandbox.exec() pour exécuter chaque commande et attendre qu’elle se termine.
L’exemple suivant démarre un sandbox sans commande principale, puis exécute deux commandes à la suite dans le même sandbox.
Sandbox.exec() exécute une commande dans le sandbox et renvoie un objet Process. Vous pouvez utiliser l’objet renvoyé pour attendre la fin de l’exécution, lire la sortie et vérifier le code de sortie.
Pour plus d’informations sur Sandbox.exec() et ses paramètres, voir Sandbox.exec() dans la documentation de référence de CoreWeave Sandboxes.
Maintenir le sandbox actif pour des commandes supplémentaires
Sandbox.exec().
L’exemple suivant démarre un sandbox avec sleep infinity comme processus principal, puis exécute un script d’entraînement dans le sandbox avec Sandbox.exec().
Lire la sortie et les codes de sortie
Sandbox.exec() renvoie un objet Process. Appelez Process.result() pour attendre la fin de la commande et obtenir son résultat. Process.result() inclut la sortie standard (stdout), la sortie d’erreur standard (stderr) et le code de sortie (returncode).
Utilisez le code de sortie pour déterminer si la commande a réussi. Par convention, un code de sortie de 0 indique un succès. Les codes de sortie possibles et leur signification dépendent de la commande.
Par exemple, l’extrait de code suivant exécute une commande Python qui affiche la sortie standard (stdout) et le code de sortie (returncode). Une fois la commande terminée, il affiche la sortie standard, la sortie d’erreur standard et le code de sortie dans la console.
Vérifiez les erreurs d’exécution du sandbox
check=True (Sandbox.exec(check=True)) pour lever une erreur si la commande se termine avec un code de sortie non nul. Une SandboxExecutionError est levée si la commande se termine avec un code de sortie non nul. Cet exemple exécute le script might_fail.py et vérifie le résultat.