这是我的节点程序
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'
任何人都可以告诉我为什么
答案 0 :(得分:1)
可能有几件事。例如,从init.d运行时,当前目录不是/ home / test。
我建议将stderr和stdout的输出传递给日志文件到允许写入的特定(非相对)区域(例如/ var / log)。