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

permission denied when using su to execute a node program

这是我的节点程序

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

在/home/test/,test目录权限为rwxrwxrwx。 当我 运行 使用 tomcat 帐户节点 test.js 时,可以创建 data.txt。

但是当我运行一个服务执行sutomcat -c 'node /home/test/test.js', 无法创建 data.txt 并且标准输出中存在权限被拒绝的提示。

sudo service test

这是我在 /etc/init.d

的服务
su tomcat -c 'node /home/test/test.js'

谁能告诉我为什么

可能是几件事。例如,当 运行 来自 init.d.

时,当前目录不是 /home/test

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