使用su执行节点程序时权限被拒绝

时间:2015-03-02 14:20:16

标签: linux node.js service su

这是我的节点程序

var fs = require('fs');
fs.writeFileSync('./data.txt', 'test');

它位于/ home / test /中,测试目录的权限是rwxrwxrwx。 当我使用tomcat帐户运行节点test.js时,可以创建data.txt。

但是当我运行服务来执行su tomcat -c&node; /home/test/test.js'时, 无法创建data.txt,并且stdout中有一个权限被拒绝的提示。

sudo service test

这是我在/etc/init.d中的服务

su tomcat -c 'node /home/test/test.js'

任何人都可以告诉我为什么

1 个答案:

答案 0 :(得分:1)

可能有几件事。例如,从init.d运行时,当前目录不是/ home / test。

我建议将stderr和stdout的输出传递给日志文件到允许写入的特定(非相对)区域(例如/ var / log)。