Пауза с сохранением файлов
Передайте keepMemory: false в JavaScript или keep_memory=False в Python, если при паузе нужно сохранить только файловую систему. При возобновлении песочница загружается с диска: файлы остаются, а процессы и данные в памяти — нет.
Сохраняйте нужные данные в файловой системе песочницы, например в /home/user. Каталог /tmp создаётся заново при холодной загрузке и в этом режиме не сохраняется.
mjs
import { Sandbox } from "@abox-dev/sdk";
const sandbox = await Sandbox.create();
try {
await sandbox.files.write(
"/home/user/persistent.txt",
"file survived reboot",
);
const process = await sandbox.commands.run("sleep 600", { background: true });
await sandbox.pause({ keepMemory: false });
await sandbox.connect();
console.log(await sandbox.files.read("/home/user/persistent.txt"));
const status = await sandbox.commands.run(
`if kill -0 ${process.pid} 2>/dev/null; then printf running; else printf stopped; fi`,
);
console.log(`Previous process: ${status.stdout}`);
} finally {
await sandbox.kill();
}Параметр относится к одной операции pause. Следующий обычный pause() снова создаст полный снапшот.
Такой режим подходит для рабочих каталогов и результатов сборки на диске. После connect заново запустите нужные сервисы. Не сочетайте его с автоматическим возобновлением: входящий запрос не может восстановить удалённый процесс.