我正在运行两个命令
indexer idx_name --rotate
indexer idx_name --buildstops dict_file 10当我从命令行运行这些命令时,一切都很好。但是,当我使用exec通过节点应用程序传递这两个命令时,第一个命令工作成功,而对于第二个命令,dict_file没有生成。
我试过一些和sudo的组合,但没什么用。我从这两种方式(节点和外壳)检查了标准输出,它看起来是一样的。
以下是我的节点js代码:
var exec = require('child_process').exec;
var cmd = 'indexer idx_name --rotate && indexer idx_name --buildstops dict_file 10';
exec(cmd, function(err, stdout, stderr) {
console.log(stdout);
});我遗漏了什么吗?
发布于 2014-04-11 18:02:32
哪个用户正在运行节点,将需要编写dict_file的权限。
甚至可能会发现更容易删除文件,并让正确的用户通过节点创建它(假设用户可以编写文件夹)。
Sudo也可以工作,但需要确保用户运行的节点具有sudo权限。在堆栈溢出的职权范围之外的排序。
..。也要检查你在正确的地方寻找。在您的示例中,您没有显示路径,因此文件dict_file将只在当前工作目录中创建(不确定节点如何配置该路径)。
https://stackoverflow.com/questions/23012188
复制相似问题