Buildstops不在节点js中使用exec创建文件

时间:2014-04-11 12:10:17

标签: node.js sphinx

我正在运行两个命令

indexer idx_name --rotate
indexer idx_name --buildstops dict_file 10

从命令行运行这些命令时,一切都很好。但是,当我使用 exec 通过我的节点应用程序传递这两个命令时,第一个命令成功运行,而第二个命令则没有生成dict_file。

我尝试了一些与sudo的组合,但它没有帮助。我从这两种方式(节点和shell)检查了 stdout ,它看起来一样。

这是我的节点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);
});

我有什么遗失的吗?

1 个答案:

答案 0 :(得分:0)

哪个用户正在运行节点,需要获得写dict_file的权限。

甚至可能更容易删除文件,让它由合适的用户通过节点创建(假设用户可以写文件夹)

Sudo也可以工作,但需要确保用户运行节点,具有sudo权限。排序绝对超出stackoverflow的范围。

...还要检查你在正确的地方看。在您的示例中,您不显示路径,因此将在当前工作目录中创建文件dict_file(不确定节点如何配置)