Я использую Node.js 13.6.0, и если я запускаю блок кода ниже:
const { execSync } = require('child_process');
const { log } = console;
const run = cmd => {
const stdout = execSync(cmd);
log(`cmd: ${cmd}${'\n'}stdout: ${stdout}`);
}
run(`mongodump ${mongodumpCmd} -o "${backupPath}/${backupName}"`);
run(`cd ${backupPath}/${backupName}; tar -zcvf ${tmpFilePath} .`);
run(`openssl enc -aes-256-cbc -e -k ${password} -in ${tmpFilePath} -out ${filePath}`);
run(`rm ${tmpFilePath}`);
run(`rm -rf ${backupPath}/${backupName}`);
log(`created backup ${backupName} at ${backupPath}`);
Это будет работать большую часть времени, но иногда я получаю ошибку Cannot call write after a stream was destroyed
. Я не могу воспроизвести эту проблему в 100% случаев, что очень странно ... мягко говоря. Что может быть источником этой ошибки и как я могу ее исправить?
PS Это, похоже, относится к openssl
. Если я удаляю openssl из команд, он работает нормально.