6. Cómo salir de la zona de pruebas
Según cómo ejecutes la zona de pruebas (consulta este paso), deberás ajustar la forma en que finalizas la zona de pruebas y, por lo tanto, también el Sandboxee.
Cómo salir de una zona de pruebas que se ejecuta de forma síncrona
Si la zona de pruebas se ejecutó de forma síncrona, Run solo devolverá un valor cuando Sandboxee haya terminado. Por lo tanto, no se requiere ningún paso adicional para la rescisión. En el siguiente fragmento de código, se muestra esta situación:
Sandbox2::Result result = s2.Run();
LOG(INFO) << "Final execution status: " << result.ToString();
Cómo salir de una zona de pruebas que se ejecuta de forma asíncrona
Si el sandbox se ejecutó de forma asíncrona, hay dos opciones disponibles para la finalización. Primero, puedes esperar a que se complete Sandboxee y recibir el estado de ejecución final:
sandbox2::Result result = s2.AwaitResult();
LOG(INFO) << "Final execution status: " << result.ToString();
Como alternativa, puedes detener el Sandboxee en cualquier momento, pero se recomienda llamar a AwaitResult()
porque el Sandboxee podría detenerse por otro motivo mientras tanto:
s2.Kill();
sandbox2::Result result = s2.AwaitResult();
LOG(INFO) << "Final execution status: " << result.ToString();