Пауза и возобновление
Полная пауза сохраняет файловую систему и оперативную память песочницы. После возобновления процессы и данные в памяти продолжают работу с того же места.
mjs
import { Sandbox } from "@abox-dev/sdk";
const sandbox = await Sandbox.create();
try {
await sandbox.files.write("/tmp/session.txt", "saved session");
const process = await sandbox.commands.run("sleep 600", { background: true });
await sandbox.pause();
await sandbox.connect();
console.log(await sandbox.files.read("/tmp/session.txt"));
const status = await sandbox.commands.run(
`kill -0 ${process.pid} 2>/dev/null && printf 'process restored'`,
);
console.log(status.stdout);
} finally {
await sandbox.kill();
}Идентификатор песочницы при паузе не меняется. Сохраните его в приложении и передайте в Sandbox.connect, когда работу нужно продолжить. Для приостановленной песочницы connect выполняет resume, а для работающей создаёт ещё один клиентский объект той же среды.
Соединения приложения с командами, PTY и сервисами внутри песочницы во время паузы закрываются. После возобновления установите их заново.
Если нужно сохранить только файлы, используйте filesystem-only pause. Для запуска новых копий состояния нужны снапшоты.