如何从nodejs中的守护进程产生gpg子进程?
问题描述:
如果我只是正常运行应用程序,我可以产生一个gpg子进程并正常解密一个文件。如何从nodejs中的守护进程产生gpg子进程?
/app.js
var spawn = require('child_process').spawn;
function decrypt() {
var gpg = spawn('gpg', ['--no-use-agent', '--passphrase', 'My Passphrase', './test.pdf.asc']);
gpg.on('close', function (code) {
console.log(code); // code == 0
});
}
decrypt();
运行app.js作为普通的过程,可能解密文件
node app.js
然而,当我尝试运行app.js如使用PM2守护,暴发户,等等。我得到了错误代码(2),无法解密文件 运行app.js AA守护
pm2 start app.js
答
这不是Node.js问题。它与gnupg工具有关。为了运行gpg从代码中调用它或作为cron作业,你需要一个标志'--no-tty'。
既然你传递了'/ test.pdf.asc',那么这个文件实际上是在文件系统的根目录吗? – loganfsmyth 2014-12-04 20:50:15
它是一个错字“./test.pdf.acs” – LonelyPlanet 2014-12-04 21:14:22
重要的错字,该错误可能是您的问题的原因。 – loganfsmyth 2014-12-04 22:09:17