Фоновые команды
Параметр background запускает команду без ожидания результата. Возвращённый объект содержит ID процесса и позволяет дождаться команды, отключиться от неё или остановить её.
mjs
import { Sandbox } from "@abox-dev/sdk";
const sandbox = await Sandbox.create();
try {
const command = await sandbox.commands.run(
"sleep 1; printf 'job finished' > /tmp/job.txt",
{ background: true, timeoutMs: 0 },
);
const pid = command.pid;
await command.disconnect();
const reconnected = await sandbox.commands.connect(pid);
await reconnected.wait();
console.log(await sandbox.files.read("/tmp/job.txt"));
} finally {
await sandbox.kill();
}Сохраните ID песочницы и процесса, если результат будет получать другой процесс приложения. Сначала подключитесь к песочнице, затем вызовите sandbox.commands.connect(pid).
Обработчики потокового вывода относятся к соединению, которое запустило команду. Если вывод должен сохраниться после отключения, записывайте его в файл. Для команды без собственного таймаута укажите timeoutMs: 0 в JavaScript или timeout=0 в Python и задайте песочнице достаточное время жизни.